<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[netyou的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/netyou</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; netyou]]></copyright><item><title><![CDATA[考虑效率用定时器还是用异步延时]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/108240582</link><guid>https://blog.youkuaiyun.com/netyou/article/details/108240582</guid><author>netyou</author><pubDate>Wed, 26 Aug 2020 15:25:45 +0800</pubDate><description><![CDATA[1、有这么一个需求，我需要每隔10秒钟处理一件事情，比较耗时，可能会处理两三秒。
最开始，我是使用的定时器，定时10秒处理一次。
这就出现了一个问题，定时一次运行，运行两三秒之后结束，然后只过了六七秒，又再次启动了（定时器固定间隔10秒）
这还算简单的，还有一种可能，定时处理的代码，处理不止两三秒，甚至10秒都处理不完，定时器会再次启动，这时候运行了两个一样的逻辑，这个还不能用加锁处理，不然上一次代码运行完，锁一解开马上运行下一次，太坑。。。
后来我换了个想法，用异步：

async void Loop()]]></description><category></category></item><item><title><![CDATA[Async在虚方法怎么用？]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/108180774</link><guid>https://blog.youkuaiyun.com/netyou/article/details/108180774</guid><author>netyou</author><pubDate>Sun, 23 Aug 2020 11:18:18 +0800</pubDate><description><![CDATA[public async virtual Task WaitDone()
    {
      var task = Task.Run(() =&gt; {
        Thread.Sleep(1000);
      });
      await task;
    }


TypeB继承TypeA重写方法WaitDone

public override async Task WaitDone()
...]]></description><category></category></item><item><title><![CDATA[一万条数据要导出EXCEL太慢了10分钟左右]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/106925362</link><guid>https://blog.youkuaiyun.com/netyou/article/details/106925362</guid><author>netyou</author><pubDate>Tue, 23 Jun 2020 15:54:36 +0800</pubDate><description><![CDATA[using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ICSharpCode;
using NPOI.XSSF.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System.Data;
using System.Reflection;
using Syste]]></description><category></category></item><item><title><![CDATA[初学linq.ToList（）和AsEnumerable（）一些疑问]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/106925261</link><guid>https://blog.youkuaiyun.com/netyou/article/details/106925261</guid><author>netyou</author><pubDate>Tue, 23 Jun 2020 15:51:20 +0800</pubDate><description><![CDATA[本人初学linq，有个地方不明白，.ToList（）和AsEnumerable（），按照文档上来说.ToList是直接执 行，AsEnumerable是延迟执行，其实没任何意义，只有要使用结果集的时候才会查询数据库，如果不需要使用结果集，并且要延迟的i情况下可以使用 AsEnumerable，我有个疑问，一般查询不是都要用到结果集么，那么AsEnumerable的使用场景是不是很少呢，能不能举例几个 AsEnumerable的使用场景，可以让我更加的形象了解AsEnumerable具体适合哪些地方用

..]]></description><category></category></item><item><title><![CDATA[在C#中调用C++ dll中函数接口,传一个结构体过去,结构体中char*的位置,会导致传参的结果发生变化,不知道为什么]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/106100680</link><guid>https://blog.youkuaiyun.com/netyou/article/details/106100680</guid><author>netyou</author><pubDate>Wed, 13 May 2020 16:18:00 +0800</pubDate><description><![CDATA[在C#中调用C++dll中函数接口,传一个结构体过去,结构体中char*的位置,会导致传参的结果发生变化,不知道为什么
C#端:

[DllImport("Dll_Test.dll", EntryPoint = "Interface_Sub", CallingConvention = CallingConvention.Cdecl)]
    public extern static int Interface_Sub(ref Sub sub);
    [StructLayout(Lay...]]></description><category></category></item><item><title><![CDATA[局域网内 两个Ｃ# winform程序之间的通讯，应该怎样实现？]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/106100539</link><guid>https://blog.youkuaiyun.com/netyou/article/details/106100539</guid><author>netyou</author><pubDate>Wed, 13 May 2020 16:13:20 +0800</pubDate><description><![CDATA[局域网内两个Ｃ#winform程序之间的通讯，应该怎样实现？　（需要通讯的数据量很少，几十个变量的值而已）　。
搜索了一下，　有说是用ＷＣＦ技术，　搜索到如下文章：　
－－－－－－－－－－－－－－－
　　　　　　　　　　C#动态调用WCF接口，两种方式任你选。1、利用IIS部署WCF服务，也就是大家接触到的发布SVC文件。2、动态调用WCF接口
－－－－－－－－－－－－－－－－－
因为我也没有了解过这个ＷＣＦ,　也不知道实践起来难不难，　最怕是搞错方法。搜索了解到ＷＣＦ它可以使用很多通讯协议。
局域网内..]]></description><category></category></item><item><title><![CDATA[C#dataGridView控件如何在当前环境中使用Contains包含来判断特定字符？]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105580273</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105580273</guid><author>netyou</author><pubDate>Fri, 17 Apr 2020 14:47:39 +0800</pubDate><description><![CDATA[指定列名是"员工状态"，当表中该列值对应存在"离职"字符时，设置行底色
想问一下，如何在当前环境中使用Contains包含来判断特定字符？
求解答，谢谢！

foreach (DataGridViewRow r in dataGridView1.Rows)
      {
       if ((string)(r.Cells["员工状态"].Value) == "5...]]></description><category></category></item><item><title><![CDATA[C#由数据绘制灰度图失真使用索引方式绘制的灰度图和原来的图像相比有些失真]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105576160</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105576160</guid><author>netyou</author><pubDate>Fri, 17 Apr 2020 11:17:05 +0800</pubDate><description><![CDATA[读取一个灰度数据.csv文件（384*288个点）使用索引方式绘制的灰度图和原来的图像相比有些失真，比如对比度上，该如何解决？修改步长step的值倒是能够整体改变，但是对比度却没有变化

private unsafe void SetData(IntPtr ptr, float step, string line)
    {
      var p = (byte*)ptr;...]]></description><category></category></item><item><title><![CDATA[c# winfom 定时器问题发现偶尔会出现定时器触发不了的问题，无法进入到定时器的timer_tick里]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105551977</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105551977</guid><author>netyou</author><pubDate>Thu, 16 Apr 2020 10:30:56 +0800</pubDate><description><![CDATA[我用c#做了一个winform程序，在主窗体中，有个system.windows.forms.timer定时器，现在碰到一个问题，发现偶尔会出现 定时器触发不了的问题，无法进入到定时器的timer_tick里，如果用鼠标点击一下主窗体或者将主窗体在最大和最小化之间切换后，定时器又自动恢复 了。请高手帮忙分析一下！

我也遇到过，不知道什么问题。后来全换成线程就好了

最近也遇到麻烦,打印机老是提示...]]></description><category></category></item><item><title><![CDATA[C#串口数据收发接收数据，单条收发的话没问题，但是如果是发送多条数据的话，只会接收到一条数据]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105551849</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105551849</guid><author>netyou</author><pubDate>Thu, 16 Apr 2020 10:25:08 +0800</pubDate><description><![CDATA[我用的是comPort.DataReceived+=newSerialDataReceivedEventHandler(comPort_DataReceived);接收数据，单条收发的话没问题，但是如果是发送多条数据的话，只会接收到一条数据。
privatevoidcomPort_DataReceived(Objectsender,SerialDataReceivedEventAr...]]></description><category></category></item><item><title><![CDATA[c#写服务程序怎么判断文件夹内子文件夹里文件的变化]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105483896</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105483896</guid><author>netyou</author><pubDate>Mon, 13 Apr 2020 10:58:29 +0800</pubDate><description><![CDATA[c#写服务程序怎么判断文件夹内子文件夹里文件的变化？

搜素C#FileSystemWatcher

FileSystemWatcher只能监测文件夹下修改，无法监测文件夹下面文件夹内的修改。请帮忙

FileSystemWatcherIncludeSubdirectories设置是否级联监视指定路径中的子目录

FileSystemWatcher控件主要功能：

监控指定文件或目录的文件的创...]]></description><category></category></item><item><title><![CDATA[如何解决Winfrom加载程序未能加载文件或程序集，抛出异常，]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105483723</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105483723</guid><author>netyou</author><pubDate>Mon, 13 Apr 2020 10:52:24 +0800</pubDate><description><![CDATA[源码如下：
DataTabledt=newDataTable("dt1");
dt.Columns.Add("C1",typeof(bool));
dt.Columns.Add("C2",typeof(int));
dt.Columns.Add("C3",typeof(string));
...]]></description><category></category></item><item><title><![CDATA[对于网络超时C/S架构的应用如何处理才好？]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105430312</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105430312</guid><author>netyou</author><pubDate>Fri, 10 Apr 2020 12:00:45 +0800</pubDate><description><![CDATA[目前在维护一个C/S应用,三层架构,对于网络稍微不好的地方,总是报错,后面加了重试机制,就是获取数据失败后会自动再获取,重试3次,这样改后,错误是减少了,但是各个操作却变慢了,这如何是好？
目前暂时还不考虑存本地,然后再上传到服务器这种方案(基于业务原因)
请问下还有其他方案吗？
PS:中间件部署在客户当地时,和增加重试机制的效果类似,因为数据库仍旧在公司总部,客户访问到中间件服务器...]]></description><category></category></item><item><title><![CDATA[如何继承类的容器传入方法参数]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105430196</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105430196</guid><author>netyou</author><pubDate>Fri, 10 Apr 2020 11:56:35 +0800</pubDate><description><![CDATA[先贴一段代码

   private void button1_Click(object sender, EventArgs e)
    {
      List&lt;A&gt; list = new List&lt;A&gt;();
      list.Add(new A(2));
      a(list);
    }

 ...]]></description><category></category></item><item><title><![CDATA[C#才用什么方法从服务器下载图片文件]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105405962</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105405962</guid><author>netyou</author><pubDate>Thu, 09 Apr 2020 11:10:37 +0800</pubDate><description><![CDATA[本人在做毕业设计，老师要求一名同学搞一个服务器将图片存入。我的任务是要从它的服务器中接收图片。下图是同学告诉我的远程桌面连接后的样子，图片被保存 在了桌面上的4G文件夹中。请问大佬们，该如何使用C#winform将这个名为“4G”的文件夹下载到我的电脑上！网上查的从服务器下载文件的程序，中 的“想要下载的文件路径”不知道应该怎样填写！URL是123.57.142.3。还望明白的大佬不吝赐教！

关...]]></description><category></category></item><item><title><![CDATA[asp.net webform 控件两种方式，那个效率高]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105388706</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105388706</guid><author>netyou</author><pubDate>Wed, 08 Apr 2020 15:23:47 +0800</pubDate><description><![CDATA[TextBox.Focus()
ScriptManager.RegisterClientScriptBlock(this,this.GetType(),DateTime.Now.ToString(),
"$('#"+TextBox.ClientID+"').focus();",true);
哪个效率更高。两者各自在用法上有啥优势与区别。

都用asp...]]></description><category></category></item><item><title><![CDATA[我在form中创建了个计时器timer，C#怎样处理form界面卡死问题]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105328322</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105328322</guid><author>netyou</author><pubDate>Sun, 05 Apr 2020 16:02:02 +0800</pubDate><description><![CDATA[我在form中创建了个计时器timer，timer时间中调用处理方法Run()，实现定时任务，同时定时任务在执行过程中会刷新状态栏数据，但是每次执行过程中form就是卡死，结果状态栏每次看到都是最后一次的刷新的情况？请问要怎么解决？

Run的代码就是普通函数，读取文件，因为文件比较多耗时长

这个提供了backgroundworker控件来实现你需求的，timer控件和界面同一个线程跑，大任...]]></description><category></category></item><item><title><![CDATA[C#虚方法应用]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105307766</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105307766</guid><author>netyou</author><pubDate>Sat, 04 Apr 2020 11:37:30 +0800</pubDate><description><![CDATA[定义一个person（人）类，再定义多个职业的类，如警察、医生、教师等等都继承与person类。
要求用虚方法的方式实现，person类中working这个方法的多态。比如，警察执行working时输出“我在抓小偷”等等。
请各位大神，这个怎么搞，对于这个还处于迷迷糊糊的。

class Program
  {
    static void Main(string[] args)...]]></description><category></category></item><item><title><![CDATA[应该如何理解BitConverter.GetBytes(byte)]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105307706</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105307706</guid><author>netyou</author><pubDate>Sat, 04 Apr 2020 11:34:17 +0800</pubDate><description><![CDATA[byte a = 0;
byte[] arr = BitConverter.GetBytes(a);
应该如何理解BitConverter.GetBytes(byte)

这种代码应该如何理解？把1个字节变为2个字节到底有什么用？

你应先了解基础数据类型是如何使用二进制表示的。

应该是我没表达明白，实际上GetBytes没有一个byte参数的重载，而是将byte转成了int16，但为什么要传...]]></description><category></category></item><item><title><![CDATA[USB HID通讯问题在学习板上可以正常收发数据 , 但转到开发板上发送的数据可以正常发送]]></title><link>https://blog.youkuaiyun.com/netyou/article/details/105289742</link><guid>https://blog.youkuaiyun.com/netyou/article/details/105289742</guid><author>netyou</author><pubDate>Fri, 03 Apr 2020 11:52:41 +0800</pubDate><description><![CDATA[在学习板上可以正常收发数据,但转到开发板上发送的数据可以正常发送,但是开发板接收不到,开发板和调试助手可以正常调试的,不知道有没有大神遇到这种问题？

          buffer = new byte[outputReportLength];
          buffer[0] = r.reportID;
        ...]]></description><category></category></item></channel></rss>