源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

利用多线程句柄设置鼠标忙碌状态的实现方法

  • 时间:2021-01-08 07:29 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:利用多线程句柄设置鼠标忙碌状态的实现方法
当我们在读取数据的时候,或者处理大量数据的时候可能需要把鼠标设置为忙碌状态,等待返回结果。下面的代码可以帮忙实现这点:
[u]复制代码[/u] 代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace CursorThread {     public partial class Form1 : Form     {         public delegate int DoSomethingDelegate(int data);         public Form1()         {             InitializeComponent();         }         static int DoSomething(int data)         {             /// <sumary>             /// Do something in this method             /// </sumary>             Thread.Sleep(300);             return data++;         }         private void button1_Click(object sender, EventArgs e)         {             this.Cursor = Cursors.Default;             DoSomethingDelegate d = DoSomething;             IAsyncResult ar = d.BeginInvoke(100,null, null);             while (true)             {                 this.Cursor = Cursors.WaitCursor;                 if(ar.AsyncWaitHandle.WaitOne(50, false))                 {                     this.Cursor = Cursors.Arrow;                     break;                 }             }             //Get the result             int result = d.EndInvoke(ar);             MessageBox.Show(result.ToString());         }     } }
这样在点击鼠标后,鼠标会变成忙碌状态一直等待DoSomething这个方法调用结束,然后变回箭头状态。 [b]当然你也可以这样: [/b]
[u]复制代码[/u] 代码如下:
// Set the status of the cursor this.Cursor = Cursor.Busy; // Do Something // Set the status of the cursor this.Cursor = Cursor.Arrow;
如果是在方法里面调用的话,不能使用this关键字,那你可以这样做:
[u]复制代码[/u] 代码如下:
private void Method() {             Curosor.Current = Cursor.WaitCursor;          /// Do Something          Cursor.Current = Cursor.Arrow; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部