static void Main(string[] args)
{
Test();
Console.WriteLine("外部完毕!");
Console.ReadLine();
}
/// <summary>
/// 事件通知模型
/// </summary>
public static void Test()
{
var souse = new TaskCompletionSource<string>();
Task.Run(()=> {
Thread.Sleep(5000);
souse.SetResult(DateTime.Now.ToString());
});
Console.WriteLine("等待结果!");
var result = souse.Task.Result;
Console.WriteLine(result);
Console.WriteLine("结果!");
}

这样就能用 线程的方法,注册回调,等消息返回之后,再返回。