Я хочу использовать поток для загрузки файла на сервер.

Пока ThreadState равно Unstarted, я могу использовать ThreadName.Start() для запуска потока. Когда код завершен, ThreadState получает Stopped. Как я могу снова начать эту беседу?

Моя ветка выглядит так:

public static Thread ThreadUploadFile = new Thread(() =>
{
    // Upload file
});

Я называю поток:

private void UploadFile()
{
    ThreadUploadFile.Start();
});
0
KMS 10 Окт 2021 в 16:22

2 ответа

Лучший ответ

Вы не можете.

Как только поток остановлен, он никогда не сможет выйти из этого состояния. Вы должны инициализировать новый экземпляр и запустить этот новый экземпляр.

Видеть https: // docs. microsoft.com/en-us/dotnet/api/system.threading.threadstate?redirectedfrom=MSDN&view=net-5.0

Я тоже нашел эту картинку (не уверен, что она все еще на 100% правильная).

enter image description here

2
jason.kaisersmith 10 Окт 2021 в 13:28

Вы не можете снова запустить поток после его остановки. Я рекомендую превратить ваш анонимный метод в реальный метод и каждый раз создавать новый поток перед запуском.

1
Albert Takács 10 Окт 2021 в 13:30