реализация эффективного огня и самолета в C#
] C# предлагает несколько способов создания методов «огня и установки»-функции, которые выполняются, не блокируя вызывающего абонента. В то время как атрибут WCF [OperationContract (isoneway = true)]
был общим подходом, более простые альтернативы обеспечивают лучшую производительность.
простые неблокирующие вызовы
]эти параметры предлагают быстрое и эффективное не блокирующее выполнение:
] threadpool.queueuserworkitem
: ] Это добавляет метод в пул потоков, выполняя его в фоновом потоке. ThreadPool.QueueUserWorkItem(o => FireAway());
task.run
: введено в .net 4.0, task.run
создает и планирует задачу в пуле потоков. Task.Run(() => FireAway());
]
оба метода запускают fireway
асинхронно, позвольте основному потоку проходить, пока выполняется фоновая задача.
важные соображения для неблокирующих методов
]помните, не блокировка не гарантирует завершение. Вызываемый метод может не закончиться до выхода программы. Если успех метода имеет решающее значение для функциональности вашего приложения, вам понадобятся дополнительные механизмы, чтобы обеспечить завершение. Это может включать в себя блокирование потока или выделенное обработку завершения, особенно в таких средах, как ASP.NET, где преждевременное прекращение может быть проблематичным.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3