我有一个名为X()
的方法。我需要异步调用该方法。任何人都可以为此提供示例代码吗?
答案 0 :(得分:4)
有几种方法,涉及线程和委托。以下是使用线程池的一个示例:
ThreadPool.QueueUserWorkItem(state => { X(); });
这是一个涉及代表的人:
Func<string> del = X;
del.BeginInvoke(ar =>
{
Func<string> endDel = (Func<string>)ar.AsyncState;
var result = endDel.EndInvoke(ar);
Console.WriteLine(result);
}, del);
答案 1 :(得分:2)
如果你真的迷失了使用C#的线程,那么BackgroundWorker是一个很好的起点。它处理一个简单的DoWork方法来运行异步调用和一个OnComplete事件,以便在线程返回时进行任何UI操作。
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx