您的位置:首页 > 编程语言 > C#

C#.NET跨线程调用控件

2015-04-02 11:40 253 查看
//定义线程和线程操作方法的委托

private delegate void FlushClient();

private Thread _trStop;

//开启线程

_trClose = new Thread(WinClose);

_trClose.Start();

//线程对应的方法

private void WinClose()

{

Thread.Sleep(8 * 1000);

while (true)

{

Thread.Sleep(1 * 100);

ThreadFunction();

}

}

//方法操作的内容。InvokeRequired和Invoke

private void ThreadFunction()

{

if (panel1.InvokeRequired)

{

FlushClient fc = new FlushClient(ThreadFunction);

Invoke(fc);

}

else

{

_opacity -= 0.05;

Opacity = _opacity;

if (_opacity < 0.1)

{

WinApi.AnimateWindow(Handle, 500, WinApi.AW_SLIDE | WinApi.AW_VER_POSITIVE | WinApi.AW_HIDE);

Hide();

_trClose.Abort();

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: