#c_sharp #многопоточность
я так понимаю разные потоки меняют одну и ту же переменную, и должен быть Exception public partial class MainWindow : Window { Int64 i = 0; Int64 j = 1; private void Test() { while (true) { j = -j; i += j; } } public MainWindow() { InitializeComponent(); for (int n = 0; n < 4; ++n) { Thread t = new Thread(() => Test()); t.Priority = ThreadPriority.Normal; t.Start(); } } }
Ответы
Ответ 1
Похоже вы путаете потоки с процессами. При попытке доступа к памяти другого процесса действительно должно возникнуть исключение, но только если такой доступ не санкционирован ОС. Потоки же, относятся к одному процессу и совместно используют память процесса, поэтому в вашем коде ни каких исключений быть не должно.
Комментариев нет:
Отправить комментарий