`
ajuanlong
  • 浏览: 105126 次
社区版块
存档分类
最新评论
文章列表
问题的产生:   我的WinForm程序中有一个用于更新主窗口的工作线程(worker thread),但文档中却提示我不能在多线程中调用这个form(为什么?),而事实上我在调用时程序常常会崩掉。请问如何从多线程中调用form中的方法呢?   解答:   每一个从Control类中派生出来的WinForm类(包括Control类)都是依靠底层Windows消息和一个消息泵循环(message pump loop)来执行的。消息循环都必须有一个相对应的线程,因为发送到一个window的消息实际上只会被发送到创建该window的线程中去。其结果是,即使提供了同步(synchronizatio ...
BeginInvoke 方法真的是新开一个线程进行异步调用吗? 参考以下代码: public delegate void treeinvoke(); private void UpdateTreeView() { MessageBox.Show(System.Threading.Thread.CurrentThread.Name); } private void button1_Click(object sender, System.EventArgs e) { System.Threading.Thread.CurrentThread.Name = "UI ...
今天是我在公司里没有任务安排的一天(好难得哦),我决定研究系统的研究一下.net中的事件与委托的机制和原理。以前都是大概的默默忽忽的晓得点,不是很全面,今天我打算要全方位的理解原理,废话就到这里下面进入正题. 事件是特殊的委托(这是个人理解)   首先介绍一个为什么要在事件中引入委托这个概念:   事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象称为事件发送方。捕获事件并对其作出响应的对象叫做事件接收方。 在事件通信中,事件发送方类不知道哪个对象或方法将接收到(处理)它引发的事件。所需要的是在源和 ...
JavaScript可以说是web开发中必备的一种技术。它具有灵活,简单,高效等特点。这次DRP中大量的用到了js,让自己对js有了更深的了解。看完这个以后还回去看了一下牛腩的js视频。把以前没看的看了一下。这里总结一下js。 什么是javaScript,js有哪些特性
在串口通讯时,可以通过设置ReceivedBytesThreshold属性设置(也可获取)DataReceived 事件(也可在该事件中空值缓冲区容量)发生前内部输入缓冲区中的字节数。 当然数据还是会一个字节一个字节的进入缓冲区的。但如果是接收到 End of File 字节,也可能引发 DataReceived 事件,与内部输入缓冲区中的字节数和ReceivedBytesThreshold属性的值无关。 DataReceived 事件 在接收到了ReceivedBytesThreshold设置的字符个数或接收到了文件结束 字符并将其放入了输入缓冲区时被触发。因此若Rece ...
.NET提供了SerialPort类进行串口通信。 串口主要有以下几个参数: 1.串口名称(PortName) 2.波特率(BaudRate) 3.数据位(DataBits) 4.奇偶效应(Parity) 5.停止位(StopBits) 使用很简单,连我这个.NET新手也能很快上手.以下是从网上找到并自己修改后的参考代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System ...
由于项目需要通过串口通信,所以学习一下在此做一下笔记。 .NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports。这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信。 创建C#串口通信程序之创建SerialPort 对象 通过创建SerialPort 对象,我们可以在程序中控制串口通信的全过程。 我们将要用到的SerialPort 类的方法: ReadLine():从输入缓冲区读一新行的值,如果没有,会返回NULL WriteLine(string):写入输出缓冲 Open():打开一个新的串口连接 Close():关闭 ...
这几天用到dataGridView的rowCount,用来做循环的上限值,结果老是出现“未将对象引用设置到对象的实例”这个错误。于是查找错误,想一想应该是出现了没有实例化的对象吧,上限值有错吗?当看到dataGridView最后一行是空行 ...
前些日子作一些数据项目的时候 在ADO.NET 中处理 ExecuteNonQuery()方法时,总是通过判断其返回值是否大于0来判断操作时候成功 。但是实际上并不是这样的,好在处理的数据操作多时修改, 插入, 删除,否则的话问题就有点打了,都是些基础的知识,但是很重要个人觉得有必要记下来。 ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete 语句执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0, ...
2种方法 前面需要声明一个事件处理。 private void TextBox_KeyPress(object sender, KeyPressEventArgs e)   {   if(e.KeyChar!=’\b’&&!Char.IsDigit(e.KeyChar)&&e.KeyChar!=’.’)   {    e.Handled = true;   }   } ...... //或者下个方法也可以   private void TextBox_KeyPress(object sender, KeyPressEventArgs e)   {   if ...
这次看教程又碰到了DropDownList控件实现的两级联动,上次由于VS出了点问题,所以没实现,这次决定实现一下。 前台界面是下面两个不修边幅的DropDownList: 数据库查询语句如下: use beidaqingniao create table sheng ( proID int primary key, proName varchar(30) not null ) insert into sheng values(1,'北京') insert into sheng values(2,'黑龙江') insert into sheng v ...
Hello world Now that the Convention plugin has been added to your application, let's start with a very simple example. This example will use an actionless result that isidentified鉴定by the URL. By default, the Convention plugin assumes承担 that all of the results are stored inWEB-INF/content. Th ...
什么是拦截器 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略。 在Webwork的中文文档的解释为——拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。 谈到拦截器,还有一个词大家应该知道——拦截器链(Interceptor Chain,在Struts 2中称为拦截器栈Interceptor St ...
1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息,甚至需要直接对JavaServlet Http的请求(HttpServletRequest),响应(HttpServletResponse)操作. 我们需 ...
今天偶然看博客发现一个简洁漂亮的网易邮箱接口,你可以点击一下试试: 打开后界面也非常简洁,如下: 其实很多时候,即使你整天说“欢迎大家给我发邮件”,但是效果甚微,并不是大家不想搭理你,而是发邮件的步骤繁琐、界面繁杂,哪有聊会QQ方便?但是从“时间管理”而言,即时通讯最容易打破学习生活节奏,为了大家都能有自己的节奏,还是推荐大家发邮件。 下面简单介绍生成方法: 1、进入http://mail.163.com/share/mail2me.htm。点击右上角的“获取给我写信按钮”。 2、登录自己的网易邮箱。 3、点击登录后,重新点击步骤一中的“获取给我写信按 ...
Global site tag (gtag.js) - Google Analytics