如何将其转换为异步过程
本文关键字:异步 过程 转换 | 更新日期: 2023-09-27 18:04:18
我有一个像
这样的循环 for(DateTime later = DateTime.Now.AddSeconds(5); DateTime.Now < later; Thread.Sleep(500))
{
// ... stuff
}
,我想知道是否有一种简单的方法将其转换为非阻塞的方式做事情。
我最喜欢的方法是使用backgroundworker类并将您的函数插入其RunWorkerAsynch/DoWork方法中。这里和这里都有很好的例子。
或者你可以运行一个单独的线程。有很多关于c#中多线程的文章。
添加一个线程对象并将阻塞循环放入其中,如下所示:
public static void Start()
{
for(DateTime later = DateTime.Now.AddSeconds(5); DateTime.Now < later; Thread.Sleep(500))
{
Console.WriteLine("Other Thread: " + DateTime.Now.ToLongTimeString());
}
}
public static void Main(string[] args)
{
Thread thread = new Thread(Start);
thread.Start();
}
详情见https://msdn.microsoft.com/en-us/library/system.threading.threadstart(v=vs.110).aspx
这是我做的一个小例子…http://rextester.com/QWMG44444享受!