相关疑难解决方法(0)

在处理控件时避免调用Invoke

我的工作线程中有以下代码(ImageListView下面是派生自的Control):

if (mImageListView != null && 
    mImageListView.IsHandleCreated &&
    !mImageListView.IsDisposed)
{
    if (mImageListView.InvokeRequired)
        mImageListView.Invoke(
            new RefreshDelegateInternal(mImageListView.RefreshInternal));
    else
        mImageListView.RefreshInternal();
}
Run Code Online (Sandbox Code Playgroud)

但是,我ObjectDisposedException有时会得到Invoke上面的方法.似乎控制可以在我检查IsDisposed和呼叫之间处理Invoke.我怎么能避免这种情况?

c# controls dispose invoke

27
推荐指数
2
解决办法
2万
查看次数

在ASP.NET MVC应用程序中锁定一个全局对象时是否可能出现死锁?

对于锁定,我使用的是一个对我的应用程序来说是全局的静态对象:

public class MvcApplication : System.Web.HttpApplication
{        
    public static readonly object AppLock = new object();
    ...
}
Run Code Online (Sandbox Code Playgroud)

用它来锁定代码:

lock(MvcApplication.AppLock)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我们暂时不要考虑性能影响.在这种情况下,我能100%确定能避免死锁吗?

c# asp.net-mvc deadlock locking asp.net-mvc-3

4
推荐指数
1
解决办法
1282
查看次数

标签 统计

c# ×2

asp.net-mvc ×1

asp.net-mvc-3 ×1

controls ×1

deadlock ×1

dispose ×1

invoke ×1

locking ×1