我一直在阅读C#中的新操作符async和await操作符,并试图找出它们可能对我有用的环境.我研究了几篇MSDN文章,这里是我在线之间阅读的内容:
您可以使用asyncWindows窗体和WPF事件处理程序,因此在执行大量操作时,它们可以执行冗长的任务而不会阻止UI线程.
async void button1_Click(object sender, EventArgs e)
{
// even though this call takes a while, the UI thread will not block
// while it is executing, therefore allowing further event handlers to
// be invoked.
await SomeLengthyOperationAsync();
}
Run Code Online (Sandbox Code Playgroud)
使用await必须的方法async,这意味着async在代码中某处使用任何函数最终会强制调用序列中的所有方法从UI事件处理程序到最低级别的async方法async.
换句话说,如果您创建一个带有普通旧旧ThreadStart入口点的线程(或者具有良好旧版本的Console应用程序static int Main(string[] args)),那么您将无法使用async,await因为您必须await使用它async,并使用它的方法,并且因此在调用方法中你还必须使用await并制作那个async,依此类推.但是一旦你到达线程入口点(或Main()),就没有await …