我正在寻找.NET中的线程池库
我已经有了自己的解决方案,支持所有这些,但我不确定它是否是最好的实现.所以我想看看其他库.
这将主要用于HTTP请求,因此更少的CPU响应等待.这意味着可以接受100个并发线程.
几年前,我阅读了Recursive Make Considered Harmful论文,并在我自己的构建过程中实现了这个想法.最近,我阅读了另一篇关于如何实现非递归的文章make.所以我有一些数据点,非递归make适用于至少几个项目.
但我很好奇别人的经历.你尝试过非递归make吗?它让事情变得更好还是更糟?值得的时间吗?
举个例子:
public static IEnumerable<BigInt> EvenNumbers(IEnumerable<BigInt> numbers)
{
foreach (BigInt number in numbers)
{
if (number % 2 == 0)
{
yield return number;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这将仅返回与条件匹配的值(n%2 == 0).但收益率回报数之间有什么区别; 并返回号码;?
如果我说收益率返回数字,它会将每个数字返回给调用函数,依此类推?我在哪里可以找到幕后发生的一些细节?
谢谢
我有一个锁定GUI线程的应用程序,我使用WinDbg和"!clrstack"命令来获取此堆栈跟踪,但我无法弄清楚问题出在哪里.所有这些方法看起来都像框架方法,没有一个是我的.任何帮助将非常感激.我为排长队道歉
OS Thread Id: 0x724 (0)
ESP EIP
0012ec88 7c90e4f4 [HelperMethodFrame_1OBJ: 0012ec88] System.Threading.WaitHandle.WaitOneNative(Microsoft.Win32.SafeHandles.SafeWaitHandle, UInt32, Boolean, Boolean)
0012ed34 792b687f System.Threading.WaitHandle.WaitOne(Int64, Boolean)
0012ed50 792b6835 System.Threading.WaitHandle.WaitOne(Int32, Boolean)
0012ed64 7b6f192f System.Windows.Forms.Control.WaitForWaitHandle(System.Threading.WaitHandle)
0012ed78 7ba2d0bb System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control, System.Delegate, System.Object[], Boolean)
0012ee18 7b6f328c System.Windows.Forms.Control.Invoke(System.Delegate, System.Object[])
0012ee4c 7b920717 System.Windows.Forms.WindowsFormsSynchronizationContext.Send(System.Threading.SendOrPostCallback, System.Object)
0012ee64 7a924102 Microsoft.Win32.SystemEvents+SystemEventInvokeInfo.Invoke(Boolean, System.Object[])
0012ee98 7a922833 Microsoft.Win32.SystemEvents.RaiseEvent(Boolean, System.Object, System.Object[])
0012eee4 7a923d2f Microsoft.Win32.SystemEvents.OnUserPreferenceChanged(Int32, IntPtr, IntPtr)
0012ef04 7aa8f184 Microsoft.Win32.SystemEvents.WindowProc(IntPtr, Int32, IntPtr, IntPtr)
0012ef08 003620a4 [InlinedCallFrame: 0012ef08]
0012f0cc 7b1d8cce System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32, Int32, Int32)
0012f168 7b1d8937 System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner(Int32, System.Windows.Forms.ApplicationContext)
0012f1bc 7b1d8781 System.Windows.Forms.Application+ThreadContext.RunMessageLoop(Int32, System.Windows.Forms.ApplicationContext)
0012f1ec 7b195911 …Run Code Online (Sandbox Code Playgroud) 我想在用户在#sid字段中输入值后立即使用数据库中的值填充表单字段.这是我的jQuery/HTML示例:
<script src="jquery-1.3.1.min.js"></script>
<script type="text/JavaScript">
$(document).ready(function()
{
$('#sid').bind("change", function(){
$.getJSON("test.php?sid=" + $("#sid").val(),
function(data)
{
$.each(data.items,
function(i, item)
{
if (item.field == "saffil")
{
$("#saffil").val(item.value);
}
else if (item.field == "sfirst")
{
$("#sfirst").val(item.value);
}
});
});
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是我的处理脚本(test.php,由.getJSON方法调用)
<?
require_once("db_pers.inc");
$ssql = "SELECT * FROM contacts_mview WHERE sempid = '".$_GET['sid']."'";
$rres = pg_query($hdb, $ssql);
pg_close($hdb);
$ares = pg_fetch_assoc($rres);
$json = array(array('field' => 'saffil',
'value' => $ares['saffil']),
array('field' => 'sfirst',
'value' => $ares['sfirst']));
echo json_encode($json);
?>
Run Code Online (Sandbox Code Playgroud)
根据firebug,GET param被传递到test.php并且JSON对象恢复正常:
[{"field":"saffil","value":"Admin"},{"field":"sfirst","value":"Nicholas"}]
Run Code Online (Sandbox Code Playgroud)
但是页面上没有任何反应,我收到以下错误消息: …
我试图强迫自己使用尽可能小的鼠标,我无法在任何地方找到这个简单的快捷方式的答案!这里的步骤:
是否有快捷键,所以我不必将手移到鼠标?
我通过ThreadPool.QueueUserWorkItem启动一个线程,其中有一个消息框对话框:
System.Windows.Forms.DialogResult dr = System.Windows.Forms.MessageBox.Show("你想在后台下载升级吗?..","升级可用",MessageBoxButtons.YesNo);
它似乎工作正常但是我有点怀疑一些客户建议他们没有收到消息弹出.我有.NET Framework 2.0+的感觉你不需要编组这个特定的调用,它会为你做.正确?
这是一个感兴趣的半相关主题: 为什么在MessageBox.Show中使用所有者窗口?
我是正则表达式的新手.
是否可以在满足特定条件的单词之前匹配所有内容:
例如
这是一个测试 - - +++这是一个测试
我希望它遇到一个以大写字母开头的单词,下一个字符是小写字母.这构成了一个恰当的词.然后我想删除那个词之前的所有内容.
上面的例子应该产生:这是一个测试
我只想要这个处理,直到它找到正确的单词,然后停止.
任何帮助,将不胜感激.
谢谢
很多时候,当我在看别人的代码时,我只想找到变量定义的位置和方式.通常我现在要做的是查找变量的类型,直到找到定义,这非常耗时.而且我想有一些工具可以帮助我解决这种局面.在某些工具或命令中有任何建议可以帮助我完成这项任务吗?
我知道使用GUI并创建一个项目这是自动完成的我在谈论一种没有GUI的方法.我只使用文本模式.我在Linux下运行,我正在使用C/C++,但欢迎使用其他语言的建议.
非常感谢.
可能的解决方案
Michel在他的一篇评论中提出了一个简单有效的解决方案,再次定义变量,在这种情况下,在编译时,编译器将告知先前的定义在哪里.当然,要应用此解决方案,我们需要先考虑变量的位置.
我最近在我的程序中添加了一些DirectX代码,现在我的双数据类型变量只有float的范围/分辨率(或者至少比以前更小的范围/分辨率).如果我删除direct3D初始化 - "Direct3DCreate9(D3D_SDK_VERSION)" - 问题就消失了.任何见解?谢谢.
c# ×3
.net ×2
c++ ×2
ajax ×1
definition ×1
direct3d ×1
find ×1
http ×1
java ×1
javascript ×1
jquery ×1
json ×1
makefile ×1
marshalling ×1
php ×1
regex ×1
stack-trace ×1
variables ×1