هل هناك أي أداء في استخدام RASEEVENT في .NET؟
-
02-10-2019 - |
سؤال
هل هناك أي أداء في الأداء في استخدام Raiseevent في .صافي?
لدي رمز يشبه ما يلي.
Dim _startTick As Integer = Environment.TickCount
'Do some Task'
Dim duration As Integer = Environment.TickCount - _startTick
Logger.Debug("Time taken: {0}", duration)
RaiseEvent Datareceived()
إرجاع الرمز أعلاه:
Time taken: 1200
Time taken: 1400
ولكن إذا أزلت RaiseEvent
يعود:
Time taken: 110
Time taken: 121
أنا مندهش من أن RaiseEvent
يسمى بعد تسجيل الوقت المستغرق. كيف يؤثر على إجمالي الوقت المستغرق؟
اعمل على ذلك .NET الإطار المضغوط.
في EventHandler ، أعطيت msgbox. عندما أزلت مربع الرسائل ، فإنه يظهر الآن الوقت الذي تم استغرقه 110 ، 121 ، وما إلى ذلك ، أي أقل من 500 مللي ثانية. إذا قمت بإعادة MSGBox إلى EventHandler ، فإنه يعرض 1200 و 1400 وما إلى ذلك ، أي أكثر من ثانية.
أنا مندهش الآن (يتم رفع الحدث بعد جزء التسجيل).
المحلول
حاول استخدام نفسه في تطبيق وحدة التحكم. يستخدم تطبيق وحدة التحكم موارد أقل.
هنا يمكنك تحديد المشكلة الدقيقة.
لا تنتمي إلى StackOverflow