较好的方法是多线程,但要在.net 2003以后才比较好用。一种想法是加一个timer,然后每秒或每数秒查询一次条件。另一种,VB本来就是事件驱动的,如果你的检测条件是在自己程序里发生的事件,比如在某个text里做了变化,那么直接在变化事件中写程序就可以了,不用主动查询,让windows自己的消息机制来通知你。
成都创新互联公司“设计定江山,服务赢天下“的思想,用细节和态度获得客户的认可与同行的尊重,服务是成都创新互联公司企业文化中重要的核心思想,每一位员工要致力成为客户心中坚实的服务后盾。
Me.Cursor = System.Windows.Forms.Cursors.WaitCursor '光标变成漏斗状
'加载耗时较长的函数
Me.Cursor = System.Windows.Forms.Cursors.Default '光标恢复正常
Dim s As String = "123456789"
For i = 1 To Len(s)
TextBox1.Text = TextBox1.Text Mid(s, i, 1)
System.Threading.Thread.Sleep(1000)
Application.DoEvents()
Next
using
Microsoft.Office.Interop.Excel;
using
Excel
=
Microsoft.Office.Interop.Excel;
Excel.Application
myExcel
=
new
Excel.Application();
Excel.Workbook
excelWorkbook
=
null;//一个Excel文件
Excel.Worksheet
excelSheet
=
null;
myExcel.Application.Workbooks.Open(@"d:\test.xlsx");//你要打开的excel文件路径
//让Excel文件可见
myExcel.Visible
=
true;
excelWorkbook
=
myExcel.ActiveWorkbook;//给worksheect对象添加选择事件:
workSheet.SelectionChange+=excelSheet_SelectionChange;
excelSheet
=
(Excel.Worksheet)excelWorkbook.ActiveSheet;
//重写事件逻辑
private
void
excelSheet_SelectionChange(Range
range)
{
MessageBox.Show("you
select
"+Target.Address);
}
#macro pager totalPage curPage=1 showPageNum=10
#if (showPageNum totalPage)
#local showPageNum = totalPage-1br/
/#if
${showPageNum}
/#macro
解释:global、assign、local(macro参数)、list(由list创建的循环变量如:#list a as x)关系
global 全局变量,在所有命名空间可见
assign 当前命名空间可见
local(macro参数) 局部变量,当前宏内可见
循环变量(#list a as x) 当前循环可见
他们之间的关系 循环变量会隐藏局部变量(local创建的或macro参数)
局部变量(local创建的或macro参数)会隐藏assign(创建的变量)
assign(创建的变量)会隐藏global
如果需要等待T2线程结束,那又何必开启这个线程!!
直接:
Label1.Visible = True
setB()
MsgBox("d")
这不就是执行完setB(),再执行MsgBox("d"),多线程是多余的。
多线程的作用大多数也就用来同时执行多任务而不用等待的。