异步调用方法

时间:2010-02-04 07:18:30

标签: c#

我有一个名为X()的方法。我需要异步调用该方法。任何人都可以为此提供示例代码吗?

2 个答案:

答案 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