关于多线程和委托
这是一个对于图片的动画程序,
   ThreadStart threadMethod;
             threadMethod = ShowImmediately;
             switch (show)
             {
                 case "立即显示":
                  //   ShowImmediately(speed, delay);
                    // ShowTest(speed, delay);
                     threadMethod = ShowImmediately;
                     break;
                 case "清屏":
                     threadMethod = ShowClear;
                     break;
                 case "左移":
                     threadMethod = ShowLeftShift;
                     break;
                 case "右移":
                     threadMethod = ShowRighShift;
                     break;
                 case "上移":
                     threadMethod= ShowUpShift;
                     break;
                 case "下移":
                     threadMethod = ShowDownShift;
                     break;
                 case "中心展开":
                     threadMethod = ShowCentreExpand;
                     break;
                 case "中心合拢":
                     threadMethod = ShowCentreFold;
                     break;
                 case "上下合拢":
                     threadMethod = ShowUpDown;
                     break;
                 case "上下展开":
                     threadMethod = ShowUpToDown;
                     break;
                 case "左右合拢":
                     threadMethod = ShowRightLeft;
                     break;
                 case "左右展开":
                     threadMethod = ShowRightToLeft;
                     break;
                 case "横百叶窗":
                     threadMethod = ShowHorizontalWindows;
                     break;
                 case "竖百叶窗":
                     threadMethod = ShowVerticalWindows;
                     break;
                 case "淡入":
                     threadMethod = ShowFadeIn;
                     break;
                 case "淡出":
                     threadMethod = ShowFadeOut;
                     break;
                 default:
                     break;
             }
             Thread drawThread = new Thread(threadMethod);
             //System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;//防止出现 线程间操作无效:
             drawThread.IsBackground = true; // 设为后台线程,避免该线程未结束时退出主线程而引发异常
             drawThread.Start();
用的时候系统爆出异常,提示线程间操作无效,从不是创建控件的线程访问他,我加上System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
这行代码就行了,但网上说不安全,最好用委托,想请教下,委托的话代码怎么写,麻烦各位详细点,委托这一块不是很懂。
------解决方案--------------------
C# code
public delegate void  ShowImmediatelyEventHandler(int speed,int delay);
private void ShowImmediately(int speed,int delay)
{
    if(A.InvokeRequired)
{
   this.invoke(new ShowImmediatelyEventHandler(ShowImmediately));
}
else
{
//做显示的内容
}
}