0

次のタイプのリストが 3 つあります。

  1. folderName : 文字列
  2. FTPcount : 整数
  3. Expectedcount : Int

すべてが (リスト内のインデックスに基づいて) 相互に関連しており、BackGroundWorkerFTPcount と Expectedcount をインクリメントしながら folderName を読み取る引数としてそれらを渡したいと思います。

それぞれが実行を終了した後にインクリメントを確認できるように、それらを(参照によって)どのように渡すことができますか?

        List<string> folderName = new List<string>();
        List<int> Expectedcount = new List<int>();
        List<int> FTPcount = new List<int>();

        foreach (string folder in Properties.Settings.Default.Folders)
        {
            BackgroundWorker bg = new BackgroundWorker();

            bGs.Add(bg);
            Expectedcount.Add(new int());
            FTPcount.Add(new int());
            folderName.Add(folder);

            bg.DoWork += new DoWorkEventHandler(Process_Instiution);
            bg.RunWorkerAsync(new { folderName = folder, Expected = Expectedcount[Expectedcount.Count - 1] as object, FTP = FTPcount[FTPcount.Count - 1] as object });
        }

        while (true)
        {
            bool IsBusy = false;
            foreach (BackgroundWorker bg in bGs)
                if (bg.IsBusy)
                {
                    IsBusy = true;
                    break;
                }

            if (IsBusy)
                Application.DoEvents();
            else
                break;
        }
        //Code to read the various List and see how many files were expected and how many were FTPed.
4

1 に答える 1

0

引数を指定するDoWork(Object data)メソッドを使用します。キャストする必要があり、argsArgumentプロパティから取得します。

データを渡すオブジェクトラッパーを作成するか、匿名型を使用します。

于 2012-11-15T02:39:29.127 に答える