下面的代码我尝试学习Task类.从输出中,我看到主线程和任务线程同时运行.但我在异步方法中得到警告消息说:
“警告1此异步方法缺少’await’运算符并将同步运行.请考虑使用’await’运算符等待非阻塞API调用,或’await Task.Run(…)’执行cpu绑定工作一个后台主题.“
那么下面的代码是同步的吗?
namespace SampleThreadTaskClass { class Program { static void Main(string[] args) { Task task = new Task(ProcessDataAsync); task.Start(); Console.WriteLine("Enter any key"); string input = Console.ReadLine(); Console.WriteLine("You entered: " + input); Console.ReadLine(); } static async void ProcessDataAsync() { for (int i = 0; i < 20; i++) { Thread.Sleep(500); Console.WriteLine("processing... " + i); } } } }
解决方法
是的. Thread.Sleep()不是异步的.
见说明:https://msdn.microsoft.com/en-us/library/hh156528.aspx#Example
await Task.Delay(10000);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。