Ich brauche zwei Methoden für die Aufgabe zu erstellen, die jeweils ot wird sie ContinueWith ähnlich sein(), aber wird contunuation in Haupt-UI-Thread ausgeführt.Aktion <Task> Implementierung
Überlastungs-Methode mit Parametern Action
, Action<Task>
Methode gibt Aufgabe (für Überlastungen mit ACTION). Zurückgegebene Aufgabe muss beendet werden, nachdem Hauptaufgabe und Fortsetzung abgeschlossen sind.
Ist es richtig Implementierung Funktion mit Action
? Und wie zweiten Fall implementieren mit Action<Task> input
mit Returned task must finish only after main Task and continuation
implementiert I
namespace WpfApplication2
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
TaskScheduler uiScheduler = TaskScheduler.FromCurrentSynchronizationContext();
WorkAsync WA = new WorkAsync();
Action firstaction = new Action(WA.Count);
WA.Work(firstaction, uiScheduler);
Action<Task> secondaction = new Action<Task>(); //What should be here?
WA.Work(secondaction, uiScheduler);
}
public class WorkAsync
{
public Task Work(Action input, TaskScheduler uiSchedule)
{
return Task.Factory.StartNew(input).ContinueWith((e) => { Console.WriteLine("Done"); }, uiSchedule);
}
public Task Work(Action<Task> input, TaskScheduler uiSchedule)
{
/// What should be here?
}
public void Count()
{
for (int i = 0; i < 10; i++)
{
System.Threading.Thread.Sleep(1000);
Console.WriteLine(i);
}
}
}
}
}
Sieht aus wie grundlegende "erwarten" sollte genug sein ... Warum brauchen Sie solche komplexe co de? –
Ich glaube, Sie Ihre Unterschrift falsch für das zweite Verfahren haben - 'öffentliche Aufgabe Work (Aktion Eingang, Taskscheduler uiSchedule)' - so scheint es mir, dass es 'öffentliche Aufgabe Work (Task-Strom, Aktion Eingang, Taskscheduler uiSchedule) sein sollte' . Ansonsten scheint es, dass Sie eine Art unmögliche rekursive Aufgabe ausführen. –
Enigmativity
@AlexeiLevenkov, ist es Aufgabe mit Action zu implementieren. –
A191919