Часто, когда я вижу какой-нибудь многопоточный код, я вижу в коде Thread.Sleep()
операторы.
У меня даже случался сбой, когда я пытался выяснить проблему, поэтому прокомментировал большинствоиз многопоточного кода и медленно принес его и для последней части, когда я добавил оператор for, как:
for ( int i = 0; i < 1000000; ++i )
++i;
он не вылетел.Так что теперь я заменил его Thread.Sleep()
, и, похоже, работает.Я не могу легко воспроизвести его, чтобы опубликовать его здесь, но использует ли Thread.Sleep()
необходимое для многопоточных приложений?
Какова их цель?Приведет ли это к неожиданным результатам, если не использовать?
РЕДАКТИРОВАТЬ: Кстати, я использую BackgroundWorker
и только реализую свои вещи там, но не уверен, что это вызывает.Хотя я использую API, который является приложением хостинга, где приложение не является многопоточным.Так, например, я думаю, что не могу вызывать его функции API в нескольких потоках одновременно.Не уверен, но это было мое предположение.