页面启动后自动触发2个事件:
private void AddIsolatedStorage_Click(object sender, RoutedEventArgs e)private void viewClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)我想先触发AddIsolatedStorage_Click,然后再触发viewClient_OpenReadCompleted
用多线程的方法,应该怎么做?我的做法是:       
        public delegate void ReadInvoke(object sender, RoutedEventArgs e);
        public void DoWork()
        {
            ReadInvoke mi = new ReadInvoke(AddIsolatedStorage_Click);
            mi.BeginInvoke(null,null,null,null);
        }
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
                Thread thread = new Thread(new ThreadStart(DoWork));
                thread.Start();
}
 
好像不行呐,有高手来解决一下么?

解决方案 »

  1.   

    我做SilverLight的,页面一启动就触发两个事件:
    1.打开页面之前判断系统是否有50M的缓存,如果没有则添加。AddIsolatedStorage_Click(object sender, RoutedEventArgs e)2.打开页面时加载图片到缓存中。viewClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    这两个碰一起CPU利用率马上就100%了……
    我只是想分开它们执行而已!
      

  2.   

    这2个都是事件,而且是自动触发的,在SilverLight的页面上自动触发的,我不能控制它的先后。
      

  3.   

    在两个函数里面lock一个对象private Object lockedObject = new Object();
    private void AddIsolatedStorage_Click(object sender, RoutedEventArgs e)
    {
       lock(lockedObject)
       {
           .....
       }
    }private void viewClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
         lock(lockedObject)
       {
           .....
       }}这样就不会同时执行了。
    不过我很怀疑你的观点,除非你使用多线程,否则两个函数应该在同一线程里面,不会同时执行。
      

  4.   

    alifriend、findcaiyzh两位讲的都很有道理,等我把代码好好整理一下再跟你们讨教!