定时显示一个提示窗口
2011-06-28 16:02
169 查看
用线程,定时启动一个程序,就是每个30s在右下角弹出提示窗。
首先找到了一个右下角提示窗的demo,然后嵌进我的程序,发现无效
唯一的区别就是demo里是用按钮点击一下显示一下窗口,在我的程序里需要通过线程调出这个窗口,发现不起作用了
网上也找到有人遇到相同的问题,原因记录如下:
当程式运行时,我们已开启了一个线程,ui 线程. 而平时的一般工作,比如说新开窗口啦,按钮事件啦,这都是在ui 线程的管辖之下。而假如我们新建一个线程,当这个线程需要调用一个新窗口的时候,不能够直接在这个新线程之下调用,而是需要让ui 线程去调用新窗口。而新的线程所做的是给ui线程发送一条信息,让他打开窗口。而做这一步,我们就需要用到delegate 技术。 假如一个控件的处理程式和操作他的代码不在同一线程中,则需要使用 控件名.invoke 方法
代码片断如下:
//工作线程的代码将直接调用form下定义的formshow方法
listenerthread()
{
//这是个自由线程。不能在这里直接调用一个窗体
formshow();//ok
}
delegate void formhandler(dataset ds);//声明一个委托
//定义一个方法此方法用来显示一个窗体
private void formshow(dataset ds)
{
if (!this.invokerequired) //假如当前线程不是主ui线程,返回true,否则,返回false.
{
frmbills fb = new frmbills();
fb.show();
fb.display(ds);
}
else
{
formhandler fhandler = new formhandler(this.formshow); //创建一个新instance指向formshow.
this.invoke(fhandler, new object[] {ds}); //启动delegate
}
// /article/5899954.html]]>
// if ($ != jQuery) {
$ = jQuery.noConflict();
}
var isLogined = false;
var cb_blogId = 38378;
var cb_entryId = 1290048;
var cb_blogApp = "chg2001868";
var cb_blogUserGuid = "593f420b-63cf-dd11-9e4d-001cf0cd104b";
var cb_entryCreatedDate = '2008/9/12 16:36:00';
// ]]>
首先找到了一个右下角提示窗的demo,然后嵌进我的程序,发现无效
唯一的区别就是demo里是用按钮点击一下显示一下窗口,在我的程序里需要通过线程调出这个窗口,发现不起作用了
网上也找到有人遇到相同的问题,原因记录如下:
当程式运行时,我们已开启了一个线程,ui 线程. 而平时的一般工作,比如说新开窗口啦,按钮事件啦,这都是在ui 线程的管辖之下。而假如我们新建一个线程,当这个线程需要调用一个新窗口的时候,不能够直接在这个新线程之下调用,而是需要让ui 线程去调用新窗口。而新的线程所做的是给ui线程发送一条信息,让他打开窗口。而做这一步,我们就需要用到delegate 技术。 假如一个控件的处理程式和操作他的代码不在同一线程中,则需要使用 控件名.invoke 方法
代码片断如下:
//工作线程的代码将直接调用form下定义的formshow方法
listenerthread()
{
//这是个自由线程。不能在这里直接调用一个窗体
formshow();//ok
}
delegate void formhandler(dataset ds);//声明一个委托
//定义一个方法此方法用来显示一个窗体
private void formshow(dataset ds)
{
if (!this.invokerequired) //假如当前线程不是主ui线程,返回true,否则,返回false.
{
frmbills fb = new frmbills();
fb.show();
fb.display(ds);
}
else
{
formhandler fhandler = new formhandler(this.formshow); //创建一个新instance指向formshow.
this.invoke(fhandler, new object[] {ds}); //启动delegate
}
// /article/5899954.html]]>
// if ($ != jQuery) {
$ = jQuery.noConflict();
}
var isLogined = false;
var cb_blogId = 38378;
var cb_entryId = 1290048;
var cb_blogApp = "chg2001868";
var cb_blogUserGuid = "593f420b-63cf-dd11-9e4d-001cf0cd104b";
var cb_entryCreatedDate = '2008/9/12 16:36:00';
// ]]>
相关文章推荐
- 显示一个提示窗口,等进程操作完成自动消失
- faster rcnn demo.py:在一个窗口显示所有类别标注
- 在一个窗口中更改了数据库内容,在父窗口中需要刷新 以显示最新的数据库内容
- QApplication::alert 如果窗口不是活动窗口,则会向窗口显示一个警告(非常好用,效果就和TeamViewer一样)
- (C++)后台运行一个swf文件,不显示flash player窗口
- 【办公技巧】Word在一个窗口中显示多个文档
- 在一个窗口中显示多个视频子窗口
- 封装一个Win32弹出提示框的函数(用于STATIC等控件显示Tooltip)
- OpenCV中一个窗口显示两幅图像
- 如何将不同信息的数据对象合并显示到同一个页面上或者滚动窗口中
- QT:窗口最小化时显示一个小浮标
- XAF 如何显示一个提示面板
- ExtJs4.1:新建一个GridPanel并在弹出窗口中显示
- C语言创建一个窗口提示
- 将数据库内表中的数据导出到txt文档中,并且显示一个对话框,提示用户保存文件的位置
- 在ASP.NET使用JavaScript显示信息提示窗口
- MFC建立一个文档视图的工程,然后在窗口上显示数据
- 添加数据之后不跳页面显示一个漂亮的提示信息(非ajax提交数据)
- C#源码刷新网页 最小化托盘http get和post请求配置保存版权时间限制定时调用 单实例运行,如果已经运行则激活窗口到最前显示
- windows.setparent可以将一个窗口显示到别的位置上,可是如果我只是想将这个窗口上的内容复制一份并显示在别的位置,该如何做呢?