Самый чистый способ вызвать межпоточные события
Пара замечаний:
- Не создавайте простых делегатов явно в подобном коде, если вы не используете версию до версии 2.0, чтобы вы могли использовать:
BeginInvoke(new EventHandler(mCoolObject_CoolEvent),
sender,
args);
Также вам events не нужно создавать и заполнять multi-threaded массив объектов, потому что multithreading параметр args имеет тип params, поэтому c# вы можете просто передать c#-language список.
Я, вероятно, предпочел event бы
Invoke
BeginInvoke
, так как последнее приведет csharp к асинхронному вызову кода, который c#.net может быть или не быть тем, что multi-threaded вам нужно, но затруднит обработку csharp последующих исключений без c#-language вызоваEndInvoke
. Вместо этого ваше .cs-file приложение получитTargetInvocationException
.
c#
multithreading
events
Самый чистый способ вызвать межпоточные события
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.