gpt4 book ai didi

c# - 紧凑框架上线程的 AsyncCallback

转载 作者:行者123 更新时间:2023-11-30 15:49:57 24 4
gpt4 key购买 nike

我需要实现线程以缩短紧凑型框架应用程序的加载时间。我想启动一个后台线程来调用外部 API,而主线程缓存一些表单。后台线程完成后,我需要再触发两个线程来填充数据缓存。

我需要后台线程能够执行回调方法,所以我知道它已经完成,接下来的两个线程可以启动,但是紧凑框架不支持委托(delegate)上的 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。对 State 属性使用 < T > 可能是有意义的,只是注意到这一点。

关于c# - 紧凑框架上线程的 AsyncCallback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1063189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com