相关疑难解决方法(0)

使BackgroundWorker按顺序执行多个操作,而不冻结表单

我已经在这里问了一个类似的问题,但我现在有一个后续问题.

我需要连续几次启动外部程序,但我有几个问题:

  • 它试图同时启动所有操作.我放了一个空的"while(bgwkSVN.IsBusy){}",它有点起作用,但我很确定它会让你们中的一些人哭一点.
  • 只要所有操作都没有完成,它仍会冻结表单.鉴于其他一些SO主题,我认为我的代码编写方式,应用程序并不是真正的多线程,或者我没有利用它...但我真的不熟悉线程.
  • 它似乎没有做我要求它做的事情.我将尝试更简单的操作,以查看操作是否成功,或者后台工作程序是否从未启动.

这是代码(抱歉,它有点长):

private struct svnCommand
{
    public svnCommand(string args, string path, int pourcent)
    {
        this.args = args;
        this.path = path;
        this.pourcent = pourcent;
    }
    public string args;
    public string path;
    public int pourcent;
}

private BackgroundWorker bgwkSVN;

public Merger()
{
    InitializeComponent();
    InitializeBackgroundWorker();
    this.textBoxCheminRacine.Text = cheminRacine;
}

private void MergerRevisions(object sender, EventArgs e)
{

    activerControles(false);

    textBoxOutput.Text = "";
    cheminRacine = textBoxCheminRacine.Text;
    if (!cheminRacine.EndsWith("\\")) { cheminRacine = cheminRacine + "\\"; }

    string branchToMerge = …
Run Code Online (Sandbox Code Playgroud)

.net c# winforms

3
推荐指数
2
解决办法
5651
查看次数

标签 统计

.net ×1

c# ×1

winforms ×1