私はこれらのスレッドを覚えていて、同期タスクと非同期タスクの作成を混同しています。コードの一部を書きましたが、うまくいきません。同期タスクが動作しない
私はそれが簡単な質問かもしれないが、本当に私が概念を得るのを助けることを知っている。
私が望むもの - 同期タスク1は、同期タスク2と同期タスク3が非同期である場合にのみデータを与える必要があります。
また、誰かが助けてくれればスレッドではなくスレッドでやりたいと思っています。
ありがとうございます。
using System;
using System.Threading;
using System.Threading.Tasks;
public class Example
{
public static void Main()
{
var syncTask1 = Task.Factory.StartNew(() =>
{
for (int ctr = 1; ctr <= 10; ctr++)
Console.WriteLine(ctr.ToString() + "1");
});
var syncTask2 = new Task(() =>
{
for (int ctr = 1; ctr <= 10; ctr++)
{
Console.WriteLine(ctr.ToString() + "2");
}
});
syncTask2.Start();
var syncTask3 = Task.Factory.StartNew(() =>
{
for (int ctr = 1; ctr <= 10; ctr++)
Console.WriteLine(ctr.ToString() + "3");
});
// syncTask.RunSynchronously();
Console.ReadLine();
}
}
これらのタスクはすべて非同期で、すべてがメインスレッドとは別のスレッドで実行されます。タスクにシーケンスが必要な場合は、シーケンスにシーケンスを設定します。 'await'、' ContinueWith'です。最後に、 'RunSynchronously'はあなたが思うことをしません(私は名前が混乱していることに同意します)。 - ドキュメントを読んでください。 – Luaan
ありがとう、私は非同期を使用したいと思いませんし、サポートするために.netフレームワークのバージョンが必要ないため、待っています。それは私が学んでいるので、他の方法を知りたいからです。 – vic90
もしあなたが 'Task'を持っていれば、あなたは' await'も持っています。どちらも同じ.NETバージョンが必要です。 'await'はコンパイラーのものです。Async Targeting Packを使用して、.NET 4.0に" await "をバックポートすることができます。まだ 'await'を避けたいのであれば(特にあなたが何をやっているのかわからないときは)、' ContinueWith' *は他の方法です - 4.0でネイティブにサポートされている方法と、 'await'のないタスクに対する非同期ワークフローを扱います。 – Luaan