1

これは、自分から各ファイルを取得Listboxして操作を実行する再生ボタンのクリック イベントです。

    private void btnPlay_Click(object sender, EventArgs e)
    {
        MyClass calss = new MyClass();
        Task.Factory.StartNew(() =>
        {
            var files = listBoxFiles.Items.Count;
            Parallel.ForEach(files ,
                             new ParallelOptions
                             {
                                 MaxDegreeOfParallelism = 10 // limit number of parallel threads here 
                             },
                             file =>
                             {
                                 class.sendBuffer(file, selectedAdapter.PacketDevice, getSpeed(), capinfos.packets);
                             });
        }).ContinueWith(
                 t => { /* when all files processed. Update your UI here */ }
                 , TaskScheduler.FromCurrentSynchronizationContext() // to ContinueWith (update UI) from UI thread
             );
    }

そして、解決方法がわからないというエラーが発生しましたParallel.ForEachエラー1メソッドの型引数 'System.Threading.Tasks.Parallel.ForEach(System.Collections.Generic.IEnumerable、System.Threading.Tasks.ParallelOptions、System.Action )' は、使用方法から推測できません。型引数を明示的に指定してみてください。

4

1 に答える 1

1

それ以外の

var files = listBoxFiles.Items.Count;

使用する

var files = listBoxFiles.Items.Cast<String>().ToList();;

ListBox 内の個々の項目をループする必要があるためです。

リストボックスが文字列のコレクションであると想定しています。

于 2013-06-01T17:52:12.547 に答える