C#- 方法在事件上升后正在呼叫主线。 然后另一个事件在第一个事件期间使用同样的方法。 在调试时, 我从调用堆叠的两行中看到同一线上的相同方法 。 @ info: whatsthis
我怎么能阻止第二个事件等待到第一个事件以同样方法准备就绪 。 我正尝试锁定 (), 但是它不会堵住相同的线索 。 Auto ResetEvent 可以等待, 但将会等待相同的线索 。
有人有线索吗?
C#- 方法在事件上升后正在呼叫主线。 然后另一个事件在第一个事件期间使用同样的方法。 在调试时, 我从调用堆叠的两行中看到同一线上的相同方法 。 @ info: whatsthis
我怎么能阻止第二个事件等待到第一个事件以同样方法准备就绪 。 我正尝试锁定 (), 但是它不会堵住相同的线索 。 Auto ResetEvent 可以等待, 但将会等待相同的线索 。
有人有线索吗?
您的问题是由 Application.DoEvents ()
造成。 此方法确实有其用途, 但很危险, 您偶然发现其中的原因之一 : 重新加入事件 。
所以,试试
private bool busy = false;
private void MyHandler(sender s, EventArgs e)
{
if (busy)
return; // giving up, no queuing
busy = true;
// code
busy = false; // maybe in a finally clause
}
您可以用 < a href=> "" http://msdn.microsoft.com/ en- us/library/ system.runtime.compilerservices.methodimplattate.aspx" rel = "nofollow" @em > MethodImplAttrapte 属性标记该方法 。
[MethodImpl(MethodImplOptions.Synchronized)]
void Method()
{
....
}
methodImplops. 同步
指定该方法可以一次只用一条线索执行。静态方法锁定类型,而实例方法锁定实例。在任何一个实例函数中,只有一条线索可以执行,而在任何一个类静态函数中,只有一条线索可以执行。
What is the use of default keyword in C#? Is it introduced in C# 3.0 ?
I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...
I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...
I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...
I have two EF entities. One has a property called HouseNumber. The other has two properties, one called StartHouseNumber and one called EndHouseNumber. I want to create a many to many association ...
How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...
Since I cannot order my dictionary, what is the best way of going about taking key value pairs and also maintaing an index?
Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...