あなたはこのような他のスレッドやタスク
上でそれを実行する必要があります。このコードで
Task task = new Task(() => { /* your code */ });
task.Start();
アプリケーションを停止することはありませんが、あなたは
を呼び出す必要があるUIパラメータで変更することを忘れないでください詳細は
this.Invoke(new Action(() => { /*your code*/ }));
このリンクを見て:
https://www.dotnetperls.com/async
https://www.codeproject.com/Articles/189374/The-Basics-of-Task-Parallelism-via-C
更新
と高速化のために、あなたのコードがparallel.forを使用することが良いです。 whachこのリンクWindowsで
http://www.dotnetcurry.com/csharp/608/csharp-parallel-for-loop-method `
using System;
using System.Threading;
using System.Threading.Tasks;
namespace ParallelFor
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Using C# For Loop \n");
for(int i=0; i <=10; i++){
Console.WriteLine("i = {0}, thread = {1}",
i, Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(10);
}
Console.WriteLine("\nUsing Parallel.For \n");
Parallel.For(0, 10, i =>
{
Console.WriteLine("i = {0}, thread = {1}", i,
Thread.CurrentThread.ManagedThreadId);
Thread.Sleep(10);
});
Console.ReadLine();
}
}
}`
あなたはUIをブロックすることなくバックグラウンドタスクを作るために' BackgroundWorker'を使用することができます形成しています。 –
私の答えを受け入れることを忘れない;-) –
'が動作を停止しました.'は、メインウィンドウのメッセージキューが処理されないためです。これは、GUIスレッドがforループを実行しているためです。 @ AlessandroD'Andriaのように、[BackgroundWorker msdn](https://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker(v = vs.110).aspx#Examples)を使用してください。または[BackgroundWorkerチュートリアル](https://www.dotnetperls。 –