随笔分类 -  C#桌面应用

语言相关……
摘要:在异步接收时,使用了BeginInvoke调用主线程中的处理函数,假如主线程中处理函数时间很长,会出现什么情况呢? 进行了一次测试:每秒发送一个数据包,在收到数据包时,记录时间,并传递这个时间到处理函数,而处理函数中会sleep3秒,结果如下: 调用处理22:04处理:22:04调用处理22:05调用处理22:06处理:22:05调用处理22:07调用处理22:08调用处理22:09处理:22:0... 阅读全文
posted @ 2010-07-19 13:35 jetz 阅读(340) 评论(0) 推荐(0) 编辑
摘要:vs2005中,子线程不允许使用UI中的控件,网上的解决方法都有:使用控件的Invoke,不过在我自己的应用中总觉得麻烦:我要从子线程中调用一个主线程中的处理,要用一次委托,而Invoke还要用委托,绕来绕去,把人绕的很晕。我稍微改了一下结构,可以比较方便的达到在子线程中调用UI线程中的处理函数。 在线程类中,定义 public delegate void ReceivedHandlerUI(ob... 阅读全文
posted @ 2010-07-18 00:02 jetz 阅读(2316) 评论(0) 推荐(0) 编辑
摘要:如果以前好着的,但ip变了之后,改了配置还是收不到。原因很简单,就是这个ip有问题。多换几个ip试试。 试过了:完全可以向本机的多个端口,多个接收端发送数据。 阅读全文
posted @ 2010-06-12 12:28 jetz 阅读(229) 评论(0) 推荐(0) 编辑
摘要:二者搭配,非常好用,但必须要用log4net.Layout.XmlLayoutSchemaLog4j才能有效果:区分不同的级别,把不同的属性列都显示出来… 关于Layout参见:http://www.cnblogs.com/wangchunlan2004/articles/609100.html 排版员 特长 ExceptionLayout 对LoggingEvent中的异常信息message... 阅读全文
posted @ 2010-05-21 01:24 jetz 阅读(486) 评论(0) 推荐(0) 编辑
摘要:winform程序使用Log4net 1.引用dll 2.添加log4net.config,设置“始终复制” 4.assemblyinfo.cs中添加 [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)] 5.代码中,使用下面语句来记录信息,logger就是当前的类 log4n... 阅读全文
posted @ 2010-05-20 22:06 jetz 阅读(1705) 评论(1) 推荐(0) 编辑
摘要:很头疼 toolstrip.imagescalingsize设置到64,64 toolstrip.showtooltip设置为false 按钮的autosize设置false 按钮的size设置为56,48 按钮导入的图片大小调整为32*32 按钮的imagescaling设置为none 按钮的displaystyle设置为imageandtext 按钮的textimagerelati... 阅读全文
posted @ 2010-04-20 20:43 jetz 阅读(246) 评论(0) 推荐(0) 编辑
摘要:Regex.Match(strName, "[\u4e00-\u9fa5]+").Success 阅读全文
posted @ 2008-11-19 22:52 jetz 阅读(396) 评论(0) 推荐(0) 编辑
摘要:不得不承认,正则表达式用习惯了,能够大大提高效率。这个分析,很简单就完成了。 Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> Regex reg = new Regex(@"(?\d{17}... 阅读全文
posted @ 2008-11-14 09:20 jetz 阅读(306) 评论(0) 推荐(0) 编辑
摘要:private string GetPDUPara(string src, string ParaName) { //匹配串@"(?<=CN=).*?(?=[;&]{1})"-----以paraname=打头的,以;&结尾的,惰性匹配的字符串。没有则返回空串。 return Regex.Match(src, "(?<="+ParaName + @"=... 阅读全文
posted @ 2008-11-02 18:07 jetz 阅读(457) 评论(0) 推荐(0) 编辑
摘要:因为listview会定期重建,所以发现单击列重新排序时,自定义的比较方法出现错误,最后发现,原因是我的listview的习惯还是vb的习惯:先添加一个关键字,得到一个item,再为item增加subitem。但由于在加入listitem时就会排序,结果排序列尚未创建,所以老是出错。 解决办法很简单,一次创建好listviewitem,一次创建就好了。 阅读全文
posted @ 2008-09-09 19:24 jetz 阅读(391) 评论(0) 推荐(0) 编辑
摘要:测试中,遇到问题,修改完后,无论当前在哪个位置,都可以用Repeat Test Run运行刚才的测试,很方便。 如果多个测试共用一个关键资源,如数据库的连接,监听服务器等,可以用[TestFixtureSetUp]定义一个全局的初始化处理。 测试的方法多种多样,不一定拘泥于比较大小,在某些并发环境下,可以采用其他的途径。比如,我测试通讯过程,测试本身只是一个死循环,睡眠一... 阅读全文
posted @ 2007-11-16 04:51 jetz 阅读(559) 评论(0) 推荐(0) 编辑
摘要:对于Nunit,我是个纯粹的新手,没想到,第一个练手的,居然是一个通讯程序。难度略微大了点。我的通讯程序是一个类似通讯服务器的程序,能够监听和维持多个连接,并实现向任意连接的收发数据。因为原来实现过类似的东西,这次做的步子又前进了一些,把整个服务器的这种工作模式抽象出来了,做成了一个与具体业务无关的通讯层。我只是按照自己的想法把代码写了出来,上层还有很多逻辑层代码,如果在原来,就得等全套代... 阅读全文
posted @ 2007-11-14 23:24 jetz 阅读(389) 评论(0) 推荐(0) 编辑
摘要:主体使用nunit,ide中使用testdriven.net 测试写在类中,否则复杂了容易乱 网站开发,把需要测试的逻辑部分,都放在外部的类中。这样nunit和testdriven.net都可以进行测试。 阅读全文
posted @ 2007-11-10 23:38 jetz 阅读(428) 评论(0) 推荐(0) 编辑
摘要:前文中,论及字符串和字节数组的转换,虽然能够找到某个代码页,保证转换的可逆,但是在实际处理中,仍然还有一些细节问题需要注意. 最重要的,就是转换得到的字符串,每个字符的编码和原来的编码可能并不相同,以代码页437为例,127以下的,转换后的字符和转换前的一样,而后面的就完全不同了。下面是437代码页的转换字符和原来内码的对照表。 - c ... 阅读全文
posted @ 2007-09-01 01:09 jetz 阅读(1592) 评论(0) 推荐(0) 编辑
摘要:最近写一个网络程序时,碰到字符串和字节数组之间的转换问题,开始时还比较简单,字符串都是标准的Ascll编码,处理起来比较简单: 字符串转字节数组 byte [] bts=Encoding.ASCII.GetBytes(str); 字节数组转字符串 string str=Encoding.ASCII.GetString(bts); 但是后来发送的数据不仅仅是Ascii码了,而是连普通... 阅读全文
posted @ 2007-08-31 22:22 jetz 阅读(1748) 评论(1) 推荐(0) 编辑
摘要:页面布局大致为左右式的,左边是一个listview,右边是一个panel,装着上下两个textbox,先让listview的dock为left,在加一个splitter,再加panel,选择fill,在其中再加textbox。一切正常。 后来,坐边要改成tab,就把panel的dock设回none,改完后,无论怎么设,panel的左侧都是和页面的左侧对齐,而不是和sp... 阅读全文
posted @ 2006-07-17 15:08 jetz 阅读(868) 评论(1) 推荐(0) 编辑
摘要:vb里常作,大概的思路就是显示一个顶层的窗体,提示暂时不要动。c#里更简单了 MsgDlg msg=new MsgDlg(); msg.TopMost=true; msg.Show(); System.Windows.Forms.Application.DoEvents(); 阅读全文
posted @ 2006-07-13 22:48 jetz 阅读(368) 评论(0) 推荐(0) 编辑
摘要:建立过程比较简单,把项目的xml文档开关打开,然后在ndoc中指定一下就行了。编出来的chm文件没的说,很酷。 问题也有,就是发现必须要带一大堆的html文件,后来发现不是这个原因。导致文件打不开的原因是顶级文件夹里有#符号。白费了半天功夫找chm工具,又是反编译又是打包的。 还有就是直接显示文件的时候费了点功夫,想找shellexe一类的东西。最后发现... 阅读全文
posted @ 2006-07-13 13:05 jetz 阅读(272) 评论(0) 推荐(0) 编辑
摘要://用正则表达式完成替换计算 //检验 if(Common.GetMatchStr(this.sumitem,@"\w+([+\-*/]\w+)*").Length!=sumitem.Length) return -1; string op=Common.GetMatchStr... 阅读全文
posted @ 2006-07-12 20:15 jetz 阅读(1402) 评论(0) 推荐(0) 编辑
摘要:public static double Round(double d, int i) { if(d >=0) { d += 5 * Math.Pow(10, -(i + 1)); } else { d += -5 ... 阅读全文
posted @ 2006-07-12 17:50 jetz 阅读(307) 评论(0) 推荐(0) 编辑