gpt4 book ai didi

c# - 另一个后台 worker

转载 作者:行者123 更新时间:2023-11-30 19:18:06 25 4
gpt4 key购买 nike

我看过msdn以及关于如何使用后台 worker 的堆栈交换的类似问题。

基本上,我的函数上传程序完成了实际的工作,但我想要一个线程来更改 ui 的元素(进度条等)以及当我发送事件以更改进度时。我在下面尝试过(粗略编辑),它不起作用,并且程序似乎在调用 runworkerasync 后中断。将我的命令“发送到另一个线程”是不是有什么简单的错误或错误?

BackgroundWorker backgroundUpload = new System.ComponentModel.BackgroundWorker();

第一位是调用:

        if (backgroundUpload.IsBusy != true)
{
backgroundUpload.RunWorkerAsync(work);
// a command here for debug purposes (eg a message box) will run
}
else
{ //it doesn't go here, this isn't the error}

然后是苦差事,它似乎永远不会到达这里。

    private void backgroundUpload_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
e.Result = UploadProgram((Workload)e.Argument, worker, e); //workload is one of my enums
}

似乎也从来没有到过这里。

bool UploadProgram(Workload work, BackgroundWorker worker, DoWorkEventArgs e)
{
}

//also there is progress changed and run worker complete.

最佳答案

您是否为您的事件处理程序订阅了该事件?

BackgroundWorker backgroundUpload = new System.ComponentModel.BackgroundWorker();
backgroundUpload.DoWork += backgroundUpload_DoWork;

关于c# - 另一个后台 worker ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972082/

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