Почему моя задача всегда в состоянии ожидания? [дублировать] ⇐ C#

Место общения программистов C#
Anonymous
Почему моя задача всегда в состоянии ожидания? [дублировать]

Сообщение Anonymous »

Чего я хочу достичь, это создать задачу, которая выполняет задачу в цикле. Когда задача выходит из-за непредсказуемой ошибки, она автоматически пересматривает задачу. В то же время, когда программа собирается выйти, она гарантирует, что задача выполнена перед выходом. Это мой код: < /p>

Код: Выделить всё

namespace WinFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
StartTask();
}
List TaskList = new List();
void StartTask()
{
var _task=Task.Run(async () => {
while (true)
{
///do something
}
}).ContinueWith(_ => {
if (_.IsFaulted)
{
TaskList.Remove(_task);
StartTask();
}
});
TaskList.Add(_task);
}
}
}
< /code>
TaskList
используется для записи некоторых задач, которые выполняются в цикле. Когда я планирую выйти из программы, я использую task.whenall , чтобы определить, были ли выполнены задачи в списке задач.
Но теперь я сталкиваюсь с проблемой. Когда я добавляю точку останова в tasklist.add (_task); , я обнаружил, что _task всегда находится в состоянии ожидания , поэтому, даже если задача выполнена, задача. В чем все еще определяется, что она не была выполнена. /> ps: я использую .net9 < /p>

Подробнее здесь: https://stackoverflow.com/questions/796 ... tion-state

Вернуться в «C#»