Tag: C#的

当一个Timer事件引发时,Windows服务如何启动一个进程?

我创build了一个Windows服务与计时器和定时器的触发事件。我创build了一个进程( System.Diagnostics.Process.Start(exe path) ),间隔为5秒。 但是这个过程并没有在事件发生时被创build。 还有其他的方法吗? 提前致谢。 private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { Process pr = new Process(); pr.StartInfo.FileName = @"C:\Program Files\Messenger\msmsgs.exe"; pr.StartInfo.WindowStyle = ProcessWindowStyle.Normal; pr.StartInfo.CreateNoWindow = false; pr.Start(); }

短路评估和副作用

好,我有点尴尬地问这个问题,但我只是想确定… 已知C在布尔expression式中使用短路评估: int c = 0; if (c && func(c)) { /* whatever… */ } 在这个例子中, func(c)没有被调用,因为c值为0 。 但是,比较副作用会改变下一个比较variables的更复杂的例子呢? 喜欢这个: int c; /* this is not even initialized… */ if (canInitWithSomeValue(&c) && c == SOMETHING) { /*…*/ } 函数canInitWithSomeValue返回true,并在成功的情况下改变给定指针的值。 是否保证后续比较(本例中为c == SOMETHING )使用canInitWithSomeValue(&c)设置的值? 无论编译器使用多么繁重的优化?

用于查找<a>链接的“href”值的正则expression式

我需要一个正则expression式模式来查找HTML中的网页链接。 我首先使用@"(<a.*?>.*?</a>)"来提取链接( <a> ),但我无法从中获取href 。 我的string是: <a href="www.example.com/page.php?id=xxxx&name=yyyy" ….></a> <a href="http://www.example.com/page.php?id=xxxx&name=yyyy" ….></a> <a href="https://www.example.com/page.php?id=xxxx&name=yyyy" ….></a> <a href="www.example.com/page.php/404" ….></a> 1,2和3是有效的,我需要它们,但是4号对我来说是无效的( ?和=是必需的) 谢谢大家,但我不需要parsing<a> 。 我有一个href="abcdef"格式的链接列表。 我需要获取链接的href并过滤它,我最喜欢的url必须包含? 和=像page.php?id=5 谢谢!

一个constvariables可以用来声明C中数组的大小吗?

为什么下面的代码会抛出一个错误? const int a = 5; int b[a]={1,2,3,4,5}; 而且当我试图编译上面的代码没有“const”关键字时,我得到了同样的错误: int a = 5; int b[a]={1,2,3,4,5}; 为什么这样呢? 我在这里做的错误是什么? 还有另一个问题:什么时候将常量replace为代码中的实际值,即如果我声明一个variables说:const int x = 5; 我知道RAM中没有为variablesx分配内存,但是在ROM中的常量variables区域保存了值5,并且在代码中出现x的地方x简单地由值5代替。 但是这是什么时候发生的? 编译时间? 开机时间? 预处理时间? PS:我正在谈论embedded式C(运行在微控制器等),而不是C在我的桌面上运行。 所以embedded式系统必然有一个ROM(Flash,EEPROM …)。 那么会发生什么?

如何在string中写一个反斜杠(\)?

我想在textbox写下类似于C:\Users\UserName\Documents\Tasks的东西: txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks"; 我得到的错误: 无法识别的转义序列。 如何在string中写一个反斜杠?

cout后增量的行为

#include <iostream> using namespace std; main(){ int i = 5; cout << i++ << i–<< ++i << –i << i << endl; } 用g ++编译的上述程序给出了输出: 45555 虽然下面的程序: int x=20,y=35; x =y++ + y + x++ + y++; cout << x<< endl << y; 给出结果 126 37 任何人都可以请解释输出。

了解浮点问题

可能有人在这里请帮助我了解如何确定何时浮点限制会导致您的计算错误。 例如下面的代码。 CalculateTotalTax = function (TaxRate, TaxFreePrice) { return ((parseFloat(TaxFreePrice) / 100) * parseFloat(TaxRate)).toFixed(4); }; 我一直无法input任何两个值,导致这种方法的结果不正确。 如果我删除toFixed(4),我可以看到计算开始失去准确性的地方(小数点后6位)。 尽pipe如此,我对浮点数的理解是,即使是很小的数字有时候也不能被表示,或者我误解了,并且可以精确地表示4位小数(例如)。 MSDN解释浮动这样 … 这意味着它们不能持有任何不是二元分数的数量(forms为k /(2 ^ n),其中k和n是整数) 现在我假设这适用于所有的浮动(包括在JavaScript中使用的那些)。 从根本上讲,我的问题归结为这一点。 如何确定是否有任何特定的方法容易出现浮点操作中的错误,这些错误将以何种精度实现以及需要哪些input来产生这些错误? 希望我所问的是有道理的。

主函数的返回值范围

标准对主要回报值的评价范围是什么? 只说最多255? 因为 int main(void){ return 256; } echo $? ; # out 0

如何在visual studio 2012中显示“粘贴Json类”时单击“粘贴特殊”?

我想在2012年使用过去的特殊function,以生成我的Json数据的C#类。 我从Nuget的NewtonSoft下载了Json.New,然后添加了一个新的.cs类,将我的json数据复制到剪贴板,但是当我去编辑 – >select性粘贴 – >我只能看到:粘贴XML作为类只有粘贴Json作为类function不显示。 有什么build议么? 预先感谢您 这是我得到的,请注意,我已经安装了Newtonsoft.Json: http://icms.indevcogroup.com/uploads/untitled.png

C函数指针强制转换为void指针

我试图运行下面的程序,但得到一些奇怪的错误: 文件1.c: typedef unsigned long (*FN_GET_VAL)(void); FN_GET_VAL gfnPtr; void setCallback(const void *fnPointer) { gfnPtr = *((FN_GET_VAL*) (&fnPointer)); } 文件2.c: extern FN_GET_VAL gfnPtr; unsigned long myfunc(void) { return 0; } main() { setCallback((void*)myfunc); gfnPtr(); /* Crashing as value was not properly assigned in setCallback function */ } 这里gfnPtr()在用gcc编译时在64位的suse linux上崩溃了。 但它成功地调用gfnPtr()VC6和SunOS。 但是,如果我改变下面给出的function,它是成功的。 void setCallback(const void *fnPointer) { […]