首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IAsyncResult cancelTokenSource

IAsyncResult cancelTokenSource
EN

Stack Overflow用户
提问于 2016-06-30 16:21:08
回答 0查看 67关注 0票数 1

为什么单击cancel按钮后鼠标移动不停止?

Xaml:

代码语言:javascript
复制
<Button Height="20" Width="40" Click="Button_Click"></Button>

代码:

代码语言:javascript
复制
namespace WpfApplication2
{
    public partial class MainWindow : Window
    {

        WorkWithMouse WWM = new WorkWithMouse();

        public MainWindow()
        {
            InitializeComponent();
            WWM.MouveMouseAsync();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            WWM.AbortMouseMove();
        }
    }

    public class WorkWithMouse
    {
        CancellationTokenSource cancelTokenSource = new CancellationTokenSource();

        [DllImport("User32.dll")]
        private static extern bool SetCursorPos(int X, int Y);

        public void AbortMouseMove()
        {
            cancelTokenSource.Cancel();
        }

        public void MouveMouseAsync()
        {
            Action<CancellationToken> task = new Action<CancellationToken>(MoveMouse);
            IAsyncResult result = task.BeginInvoke(cancelTokenSource.Token, null, null);
        }
        private void MoveMouse(CancellationToken token)
        {
            while (!token.IsCancellationRequested)
            {
                for (int i = 100; i < 500; i++)
                {
                    System.Threading.Thread.Sleep(2000);
                    SetCursorPos(i, 100);
                }
            }
        }
    }
}
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38117625

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档