Exemple #1
0
 private void TransferItem()
 {
     while (true)
     {
         int item;
         lock (_lockObj)
         {
             if (FirstItems.Count == 0)
             {
                 break;
             }
             int n = new Random(unchecked ((int)DateTime.Now.Ticks)).Next(0, FirstItems.Count);//随机抽取出一项
             item = FirstItems[n];
             //在UI线程上同步执行,否则可能出现索引越界(会阻塞UI线程,在其中加入sleep可以很明显看出来)
             UIDispatcherHelper.CheckInvokeOnUI(() =>
             {
                 FirstItems.RemoveAt(n);
                 //Thread.Sleep(100);
             });
         }
         UIDispatcherHelper.CheckBeginInvokeOnUI(() =>
         {
             SecondItems.Add(item);
         });
         Thread.Sleep(100);
     }
 }
Exemple #2
0
 private void SecondItems_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (e.RemovedItems.Count > 0)
     {
         Data.CorrectSecond();
         SecondItems.BeginRotate(0, 6);
     }
 }