+-
紧凑框架上的线程的AsyncCallback
我需要在紧凑的框架应用程序中实现线程化以缩短加载时间.我想触发一个后台线程来对外部API进行一些调用,而主线程则缓存一些表格.后台线程完成后,我需要触发另外两个线程来填充数据缓存.

我需要后台线程能够执行回调方法,这样我就知道它已经完成并且可以启动下两个线程,但是紧凑框架中不支持委托上的BeginInvoke方法,那么我还能怎么做呢?

最佳答案
您可以自己安排它,只需确保您的线程方法在完成时调用完成的方法(或事件)即可.

由于CF也不支持ParameterizedThreadStart,因此我曾经做了一个小助手类.

以下是摘录,未经重新测试:

//untested
public abstract class BgHelper
{
    public System.Exception Error { get; private set; }
    public System.Object State { get; private set; }

    public void RunMe(object state)
    {
        this.State = state;
        this.Error = null;

        ThreadStart starter = new ThreadStart(Run);
        Thread t = new Thread(starter);
        t.Start();            
    }

    private void Run()
    {
        try
        {
            DoWork();                
        }
        catch (Exception ex)
        {
            Error = ex;
        }
        Completed(); // should check Error first
    }

    protected abstract void DoWork() ;

    protected abstract void Completed();
}

您需要继承并实现DoWork和Completed.使用< &对于国有财产,只是注意到这一点.

点击查看更多相关文章

转载注明原文:紧凑框架上的线程的AsyncCallback - 乐贴网