WinForm:
1:多线程调用带参数的
方法:
new Thread(new ThreadStart(UpDateData)); //调用 //线程调用的方法 //FromDBConnectionString 全局变量 //ToDBConnectionString 全局变量 private void UpDateData() { SQLHandle.UpdateData2(FromDBConnectionString, ToDBConnectionString); //带参数的方法 }
或者在SQLHandle声明 全局变量 使用时 先复制变量在方法中直接调用变量
//使用 委托代理 ThreadStart starter = delegate { SQLHandle.UpdateData2(FromDBConnectionString, ToDBConnectionString); }; new Thread(starter).Start();
还有很多方法
2:线程间操作无效:从不是创建“XXX”的线程访问他
方法1:
Control.CheckForIllegalCrossThreadCalls = false;//所有控件都可以被访问
方法2:
delegate void SetTextCallback(string str); //定义委托 //mLog txt文本控件添加日志信息的方法 public void Append(string alog) { if (mLog.InvokeRequired) //控件是否跨线程 如果是,则执行括号里代码 { SetTextCallback setListCallback = new SetTextCallback(Append); //实例化委托对象 mLog.Invoke(setListCallback, alog); } else { alog = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + ":" + alog + "\r\n\r\n"; mLog.AppendText(alog); } }
WinForm、Window Service 安装程序的创建
新建项目:
在你的WinForm 、Window Service 程序的解决方案下
1.新建: 选择 Visual Studio Installer - 安装项目
2.右键 安装程序 选择 视图 -文件系统
3.在应用程序文件夹 右键 添加-项目输出 选择你的 WinForm 、Window Service 程序
4.右键 安装程序 选择 视图 - 自定义操作
5.在自定义操作界面 的 安装和卸载 右键 添加自定义操作 选择 应用程序文件夹中 你主输出程序集
6.生成 找到 安装程序目录下的 Debug/Release 根据自己的项目配置
setup.exe 文件只是安装程序 .msi 文件 集合 安装、卸载 功能