0
以下代码仅会使应用程序崩溃,在调用发布时,不会发生错误并且应用程序会关闭。 我真正想做的是执行unittests,这段代码只是为了提供一个干净的例子的摘要。当我将相应的代码作为unittest运行时,我收到一条错误消息,指出线程正在中止。代码使用的是MassTransit nuget包的3.5.6版本。发布于CreateUsingInMemory总线崩溃应用程序
任何人都可以看到我做错了什么?
using System;
using System.Threading.Tasks;
using MassTransit;
namespace CustomerService.Console
{
class Program
{
public static void Main(string[] args)
{
Task.Run(() => PerformMassTransitTest()).GetAwaiter().GetResult();
}
public static async void PerformMassTransitTest()
{
var busControl = Bus.Factory.CreateUsingInMemory(config =>
{
config.ReceiveEndpoint("myQueue", endpoint => { endpoint.Consumer<TestMessageConsumeer>(); });
});
try
{
await busControl.StartAsync();
await busControl.Publish(new TestMessage());
System.Console.ReadKey();
}
catch (Exception err)
{
System.Console.WriteLine(err);
}
System.Console.ReadLine();
}
}
public class TestMessage
{
}
public class TestMessageConsumeer : IConsumer<TestMessage>
{
public Task Consume(ConsumeContext<TestMessage> context)
{
System.Console.WriteLine("Consuming");
return Task.FromResult("Consumeed");
}
}
}
谢谢你,完美,有时你没有看到所有树木的森林:)工程就像一个魅力! –
@MorganArvander这将是很好,如果你可以接受并upvote答案:) –