小编Ste*_*eav的帖子

Parallel.Foreach与正常ForEach一样快/慢

更新:我使用线程在内核数量中分割循环(在我的情况下为8),完整的循环在1秒内完成.所以问题不在于,线程操作不会更快.为什么Parralel Extension在这种情况下会失败?

嘿大家.我想用Parrallel.Foreach转换我的ForEach.问题是,parralelisation对我来说几乎没有任何好处.

原版的:

foreach (Entities.Buchung buchung in buchungen) {
    Int32 categoryID = manager.GetCategoryID(new Regelengine.Booking(buchung)); // Average 4ms
    buchung.Category = categoryID.ToString();
}
Run Code Online (Sandbox Code Playgroud)

平行:

System.Threading.Tasks.Parallel.ForEach(buchungen, buchung => {
    Int32 categoryID = manager.GetCategoryID(new Regelengine.Booking(buchung));
    buchung.Category = categoryID.ToString();
});
Run Code Online (Sandbox Code Playgroud)

结果:

---------------------------
Stopwatched Results for 1550 entries in the List:
---------------------------
Parallel.Foreach 00:00:07.6599066
Average Foreach: 00:00:07.9791303
Run Code Online (Sandbox Code Playgroud)

也许问题是,循环中的实际动作如此之短?但没有人能告诉我,在英特尔I7上并行执行1550操作将无法节省时间.

c# parallel-processing foreach multithreading

13
推荐指数
2
解决办法
7336
查看次数

C#线程停放CPU?

System.Environment.ProcessorCount显示N个处理器(在我的情况下为N = 8),我想要使用它.现在问题是,Windows资源管理器sais,我的4个CPU被"停放",而8个线程我开始只分离到4个未阻塞的CPU.

现在还有办法使用停放的CPU吗?

c# cpu multithreading

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

如何强制二进制应用程序使用C#工具中的SOCKS代理?

我目前正在考虑开发一个类似sockscap的工具,它具有一些很酷的新功能和一个不错的WPF gui.

对于那些不记得的人:SocksCap是一个允许你使用SOCKS4/5代理使用任何应用程序的工具......所以你可以在不使用VNC等的情况下用其他IP玩游戏.

然而,我不是一个网络人,所以我喜欢一些关于如何从Windows环境中的外部应用程序"socksify/proxify"的输入.因为这应该是一个项目,而不是"快速和肮脏"的事情,我只是进入"干净和通用"的方法,而不是"修改HOSTS条目"或"每个应用程序的插件"......

那么,对于网络编程知识的人如何开始研究通过代理重定向(路由?)应用流量?

谢谢你的帮助 :-)

c# sockets proxy networking socks

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

Silverlight Listbox触发MouseRightButtonDown,但不触发MouseLeftButtonDown

我在一个更大的项目中遇到这个问题......所以我设置了一个'Testpoject'作为概念证明:

  • 新的Silverlight应用程序
  • 添加列表框
  • 使用几个复选框填充列表框
  • 注册listBox1_MouseLeftButtonDown
  • 注册listBox1_MouseRightButtonDown

你会看到,listBox1_MouseLeftButtonDown在任何情况下都不会触发....然而,listBox1_MouseRightButtonDown触发就好了.

我尝试使用从ListBox派生的自定义类并重写,假设ListBox类中的某些东西设置了e.Handled = false,但这也没有改变行为.

关于为什么会发生这种情况以及如何解决这个问题

(这个问题也阻止'父母'控制接收点击事件...所以事件传递被破坏了)

:编辑:我通过解决方法解决了我的问题...所以不再需要答案了.只是如果有人想要弄清楚为什么会发生这种情况;)

silverlight events mouseclick-event silverlight-4.0

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

修改SELECT-Statement (TSQL)的返回值【优化查询】

问题:数据库列有一个三态 (0,1,2)。每个值都在服务器端使用。

客户端代码(不能再更改)只能理解“0,1”。在客户端视图中,“1”与“2”相同。所以我想将数据库中的 SQL 查询更改为返回“1”,如果特定值 > 0。

我当前的解决方案是将 2 个选择(使用 UNION SELECT)与不同的 WHERE 子句结合起来,并返回 '1' 或 '0' 作为静态值。现在我正在寻找一种解决方案来“翻译”仅在一个 SELECT 语句中的值。

这是我目前的解决方案:

 SELECT
dbo.Nachricht.NachrichtID, dbo.Nachricht.Bezeichnung, '1' AS BetrifftKontoeinrichtung, 
FROM         dbo.Nachricht INNER JOIN dbo.AdditionalData
ON dbo.Nachricht.NachrichtID = dbo.AdditionalData.NachrichtID

WHERE     (dbo.Nachricht.NachrichtID in ( 450,439 ))
AND dbo.AdditionalData.BetrifftKontoeinrichtung > 0

UNION SELECT
dbo.Nachricht.NachrichtID, dbo.Nachricht.Bezeichnung, '0' AS BetrifftKontoeinrichtung, 
FROM         dbo.Nachricht INNER JOIN dbo.AdditionalData
ON dbo.Nachricht.NachrichtID = dbo.AdditionalData.NachrichtID

WHERE     (dbo.Nachricht.NachrichtID in ( 450,439 ))
AND dbo.AdditionalData.BetrifftKontoeinrichtung = 0
Run Code Online (Sandbox Code Playgroud)

sql sql-server select

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