小编dso*_*ano的帖子

串口线程锁,同时处理从串口读取的数据

我有一个事件处理程序,只要在串行端口上接收到数据,它就会被调用,一旦调用此事件,我就会处理单个字节的数据,直到处理完所有数据。

我的问题是,如何确保这个 IBSerialPort_DataReceived 事件处理程序在我第一次被调用时仍在处理字节时不会再次被异步调用,即我想保证 ProcessByte 方法只在一个线程上执行一次。

void IBSerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
  while (BytesToRead > 0)
  {
    ProcessByte((byte)ReadByte());
  }
}
Run Code Online (Sandbox Code Playgroud)

c# multithreading asynchronous serial-port locks

1
推荐指数
1
解决办法
3567
查看次数

是否可以在ISPF中以查看模式编辑PS文件?

当我们在编辑模式下打开文件时,我们可以在ISPF中编辑JCL文件.是否可以在查看模式下编辑文件?

mainframe ispf

1
推荐指数
1
解决办法
931
查看次数

如何知道前台的应用程序名称

是否可以获取处于前台模式的应用程序名称?我在任何地方都找不到代码。

iphone ios ios8 ios8.1

1
推荐指数
1
解决办法
94
查看次数

动态与强类型元素

我是一名Web开发人员,目前正在使用mvc3 razor和Umbraco来创建Web应用程序.我没有长时间从事这项工作,并且已经从使用动态元素转变为强类型元素以遵循标准.

我从来没有真正给出太多理由,在线搜索似乎很清楚它更容易遵循和调试集类型变量,但我很困惑在函数中使用它.

例如,当使用Umbraco内容时,我现在切换到1Umbraco.TypedContent1.我猜测它会返回一个强类型变量,但除了调试之外还有其它任何好处吗?

c# umbraco asp.net-mvc-3

1
推荐指数
1
解决办法
909
查看次数

在枚举时插入队列

我想使用Queue对树进行广度优先搜索

var q = new Queue<T>();

q.Enqueue(Root);

foreach(T root in q)
{
  foreach(T t in root.Children)
    q.Enqueue(t);
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了"在实例化枚举器之后修改了集合".例外.

我可以用C#类型吗?


编辑:一点点阅读让我觉得我可能做错了.

有没有办法使用foreach从队列中出队?


这工作但很难看(OMHO)

var q = new Queue<T>();

q.Enqueue(Root);

while(q.Count > 0)
{
  T root = q.Dequeue();
  foreach(T t in root.Children)
    q.Enqueue(t);
}
Run Code Online (Sandbox Code Playgroud)

c# queue breadth-first-search data-structures

0
推荐指数
1
解决办法
1463
查看次数

如何启动css和html

我有一般性的问题,如何开始发展我的网页设计技能.什么是最好的起点和使用的技术.我对html和css有一些了解,到目前为止我一直在构建已完成所有html和css的网站.我会使用它,也许做一些较小的改动.我希望能够从艺术家制作的图像中制作html和css.

html css

0
推荐指数
1
解决办法
649
查看次数

ASP.NET - 阻止应用程序使用的最佳方法是什么?

我们的客户必须每月支付费用......如果他们不这样做,阻止asp.net软件使用的最佳方法是什么?注意:应用程序在客户端自己的服务器上运行,而不是SaaS应用程序...

我的想法是:

想法:在互联网上托管Web服务,应用程序将使用该服务来了解客户端是否可以使用该软件. 问题1 - 如果客户端互联网失败会发生什么?或者数据中心失败了? 可能的答案:让每个Web服务访问权限发送一个有效期为7或15天的密钥,因此每个Web服务咨询将使软件运行7或15天,这样应用程序将只在7或15之后锁定几天没有咨询我们的网络服务. 问题2 - 如果客户端没有或不想启用对应用程序的Internet访问?

想法2:每月向客户发送密钥. 问题 - 如何制作离线密钥? 可能的答案:使用"限制"日期生成哈希,因此每次登录尝试软件都会将今天的哈希与密钥进行比较? 问题2 - 存放密钥的位置? 可能的答案:数据库(不好,太容易改变),文本文件,注册表,代码文件,汇编......

任何意见将非常感谢!

licensing license-key

0
推荐指数
1
解决办法
858
查看次数

通过以太网电缆(tcp)进行rs-232串行连接

我有通过rs-232接口(超声脉冲发生器 - 接收器)控制的硬件设备.我需要编写一个程序,将命令从我的计算机发送到设备.然而,不同寻常的是,该设备没有串行端口(DB-9 COM端口),而是具有RJ45插座(以太网插座).该设备随附一个适配器,用于将设备上的以太网端口连接到串行电缆,以便与计算机进行通信.

不幸的是我的电脑没有串口 - 只有一个以太网端口.如果可能的话,我想取消适配器并使用以太网电缆将计算机直接连接到设备.这在物理上是可能的 - 但我不知道如何转换消息协议?例如,我的设备没有用于打开tcp套接字的ip地址?

到目前为止,我一直在使用Boost.asio(在Ubuntu盒子上)通过tcp套接字将消息流发送到支持tcp的其他设备.如果可能的话,我想继续使用Boost.Asio库 - 因为它是跨平台的.我真的不知道从哪里开始 - 我一直使用Boost.Asio库,它很好地隐藏了大部分协议问题.我相信这是可能的,因为有些Windows程序似乎做了类似的事情,请参阅http://com0com.sourceforge.net/

任何指导性建议都会受到欢迎.非常感谢

c++ tcp ethernet serial-port boost-asio

0
推荐指数
2
解决办法
9104
查看次数

为每个产品密钥生成序列号并验证它们

我有一个带有不同可解锁模块的软件.每个模块必须单独购买.我开始通过Guid.NewGuid方法为每个模块分配一个唯一的密钥.

现在我必须为用户提供用于激活这些升级的序列号,然后需要验证这些数字:

  1. 序列号属于特定产品密钥
  2. 序列号对特定产品密钥有效.

有关如何根据Guid产品密钥生成序列号并执行反向操作以进行验证的任何建议吗?

谢谢.

.net licensing copy-protection serial-number license-key

0
推荐指数
1
解决办法
2906
查看次数

如何使用installutil.exe安装服务

请帮助我如何使用installutil.exe安装Web服务..?

我每次开始都会收到Windows服务启动失败错误.

谢谢

c# windows-services

0
推荐指数
1
解决办法
5532
查看次数