2016-11-05 4 views
0

Я использую потоки в проекте WPF. И для управления потоком потоков я использую SpinLock в WPF.Как использовать блокировку в потоках

Однако я столкнулся на «Этот замок использует другую нить» журнал ошибки во время выполнения. (Оригинальный журнал не английский, поэтому я перевести на английский язык.)

Так что, я думаю, что спинлки не могут использоваться потоки. Я надеюсь узнать, как использовать блокировку во многих потоках. Или я хочу знать, что в этом случае можно использовать другой Lock.

ответ

0

Вам нужно будет выслать свой код. documentation for SpinLock говорит:

Все члены SpinLock являются потокобезопасными и могут использоваться из нескольких потоков одновременно.

Спиновые замки нужны только очень редко. Возможно, вам захочется исследовать другие блокирующие примитивы.

+0

Благодарим вас за ответ. Я думаю, что я, вероятно, использую атомную переменную. Однако я обнаружил, что C# не поддерживает определенную атомную переменную. Многие люди использовали Object, а не атомную переменную. Однако это не общий способ, поэтому я попытался использовать спин-блокировку вместо атомной. В любом случае, подумайте, что вы ответили. Я попробую по-другому. –

0

Не использовать нити, это короткий ответ. «Параллелизм в C#» является авторитетным словом в этой области и полностью охватывает всю тему, я настоятельно рекомендую вам попробовать приобрести копию. В то же время я оставлю тебя с цитатой из первой главы:

резьба и типы BackgroundWorker не охвачены вообще в этой книги. У них было время, и это закончилось.

Смежные вопросы