问题列表 - 第36036页

Application.DoEvents()是我唯一的选择(在这种情况下)?

我有一些商业设备可以连接到设备制造商提供的.Net库 - 所以我无法控制库或设备,只能控制我的代码.

制造商已经设置了他们的系统,这样如果你没有通过他们的库连接到设备,那么它工作正常.但是,当您连接其库时,隐含要求您以设备运行速度设置的速率为Windows消息泵提供服务.这是因为他们的库实现了一个事件系统,您可以订阅它来跟踪设备的操作,但他们认为您的应用程序代码将基于WinForms.(但是在他们的文档中没有明确说明这一点 - 只有他们的.Net示例程序中的所有两个都是基于WinForms的.)我已经向他们的技术支持证实了期望是你将使用WinForms应用程序.

在我的情况下,我正在编写一个C#,非基于WinForms的应用程序(实际上是一个Windows服务,所以我没有UI线程),即使我连接到设备,我也没有订阅任何事件.结果我发现我需要引用WinForms程序集并以足够快的速度调用Application.DoEvents()来为我未订阅的所有事件提供服务.

所以我的问题是:

  1. 在这种情况下调用Application.DoEvents()我唯一的选择?
  2. 或者有更现代的方式吗?
  3. 以20mS的速率调用DoEvents()的后果是什么?
  4. 不相关,但如果我写了一个基于WPF的应用程序,该程序是否可能为消息泵提供服务?

编辑

我应该补充一点,如果你连接到设备并且不服务windows消息泵(即使没有订阅他们的任何事件),那么设备跌落开始表现得不可预测.

编辑2

我用来连接到库的线程大约是从初始的Windows服务线程中删除了2或3代.

c# replace doevents

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

在jQuery中作为$的参数

...这是什么意思?我几乎没有使用jQuery的经验,需要使用一些现有的代码.

所有教程都讨论的是使用带有伪CSS选择器的$(),但是这样的含义是什么:

$(function makeFooWriteTooltip() {
    if($("div[name='txttooltip']").length>0){
        $("div[name='txttooltip']").each(
         function(){
Run Code Online (Sandbox Code Playgroud)

jquery

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

c#:(静态)类级变量

这绝对是一个菜鸟问题,但我的远距离搜索并没有为我解决这个问题.

想要一个特定的控制台应用程序来存储几个类级变量.在一种情况下,我想存储我的日志对象的副本,我将在类中的不同位置使用它.在另一种情况下,我想存储一个简单的类型,实际上是一个int值,它只在内部使用(不需要是属性).

似乎除非我将这些变量指定为静态,否则我不能在Main()及更高版本中使用它们.

我对静态对象的理解是它们的值在对象的所有实例之间共享.在正常操作下,我希望它们只是我应用程序的一个实例,所以这个问题不是问题 - 但它强调了我对相当基本的东西缺乏了解.

在我的日志对象的情况下,我可以看到使其成为静态的情况 - 在多个实例之间共享日志可能是一个好处.但是,情况可能并非如此......在我的int的情况下,我当然不希望在实例之间共享它.

所以...

  • 我误解了这背后的理论吗?
  • 有没有不同的方式我应该声明和使用我的类级变量?
  • 我应该避免使用它们吗?我可以简单地将值作为参数从函数传递到函数,尽管对于没有明显增益的工作似乎没什么用.

编辑:好的,信息很清楚 - 我对静力学的理解基本上是正确的,但问题在于结构和方法.谢谢你的回复.

c# static declaration

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

服务需要哪个用户权限才能启动/停止其他服务?

我写了一个应该启动/停止其他服务的服务.这是我正在使用的代码:

ServiceController sc = new ServiceController("servicename");
if(sc.Status != ServiceControllerStatus.Running)
{
    sc.Start();
}
Run Code Online (Sandbox Code Playgroud)

这是异常的callstack.(对不起,但邮件是用德语本地化的,但这与理解我的问题无关)

System.InvalidOperationException: Der Dienst SCardSvr kann nicht auf dem
Run Code Online (Sandbox Code Playgroud)

电脑 .geöffnetwerden.---> System.ComponentModel.Win32Exception:Zugriff verweigert
--- Ende der internenAusnahmestapelüberwachung---
bei System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
bei System.ServiceProcess.ServiceController.Start(String [] args)
bei System .ServiceProcess.ServiceController.Start()

目前我正在'Networkservice'下运行该服务.我想该帐户不足以满足必要的用户权限.
我将创建一个新用户,该用户具有启动/停止任意服务所需的最小权限.
这个新的useraccount需要什么权限?

c# permissions windows-services

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

Ant继承Maven属性

我正在考虑将Ant/Ivy项目转换为Ant/Maven-Ant-Tasks.我不想单独使用Maven,因为我需要更多地控制构建过程.

有没有办法让Ant build.xml文件继承pom.xml文件中设置的属性?

我一直在创建一个可以在多个项目中使用的通用build.xml文件,并加载一个特定于项目的project.properties文件,但是如果我可以将所有这些属性放在pom.xml文件中会更好.

谢谢.

ant maven-2

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

iTextSharp中心对齐Document对象中的对象

是否有一种快速简单的方法来对齐Document对象中的对象? 执行任何计算逻辑,即.获取页面宽度,获取内容宽度,除以2等.

我在Document对象中的Paragraph对象中有一个PdfPTable对象.我想将Paragraph对象居中.

谢谢!

.net c# itextsharp

19
推荐指数
3
解决办法
7万
查看次数

数组作为const指针

请考虑以下代码:

void Increment(int *arr) {
    arr++;
}

int main() {
    int arr[] = {1,2,3,4,5};
    // arr++  // illegal because its a const pointer
    Increment(arr);   // legal
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果arr是一个const指针,我怎么能把它发送到一个没有接收到const指针的函数?

代码编译时没有丢弃const限定符的警告.

c++ arrays pointers

6
推荐指数
2
解决办法
2983
查看次数

错误'已经有一个与此命令关联的打开的datareader,必须先关闭'

运行时错误'已经有一个与此命令关联的打开的datareader,必须先关闭'

objCommand = new SqlCommand("SELECT field1, field2 FROM sourcetable", objConn);

objDataReader = objCommand.ExecuteReader();

while (objDataReader.Read())
{
objInsertCommand = new SqlCommand("INSERT INTO tablename (field1, field2) VALUES (3, '" + objDataReader[0] + "')", objConn);
objInsertCommand.ExecuteNonQuery();//Here is the error
}
objDataReader.Close();
Run Code Online (Sandbox Code Playgroud)

我不能在这里定义任何存储过程.任何帮助我们都会感激.

c# ado.net

24
推荐指数
3
解决办法
8万
查看次数

如何区分Windows 7和Windows 2008 R2

我需要区分Windows 7和Windows 2008 R2,但我不知道如何.OS Version属性返回相同的数字"6.1.7600.0"

问候,

弗洛里安

c#

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

将日期从"2009-12 Dec"格式转换为"31-DEC-2009"

'2009-12 Dec' should be converted to '31-DEC-2009'
'2010-09 Sep' should be converted to '30-SEP-2010'
'2010-02 Feb' should be converted to '28-FEB-2010'
'2008-02 Feb' should be converted to '29-FEB-2008'
Run Code Online (Sandbox Code Playgroud)

将在下拉列表中向用户显示2009-12 Dec,2008-02 Feb的值.用户无法选择DAY.

应将用户选择的值传递给数据库.但是数据库期望格式中的日期DD-MMM-YYYY.查询具有<= USER_DATE条件.因此,应自动选择月份的最后一天并将其传递到数据库.

Pl帮助我编写完成上述工作的功能.

static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM MMM");

    public static String convertMapedToSqlFormat(final String maped) {
        String convertedMaped = null;
        //....
        return convertedMaped;
    }

    @Test
    public void testConvertMapedToSqlFormat() {
        String[] mapedValues = { "2009-12 Dec", "2009-11 Nov", "2009-10 …
Run Code Online (Sandbox Code Playgroud)

java date date-format simpledateformat

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