我有一个有点复杂的WPF应用程序,当尝试使用调度程序在UI线程上调用调用时,似乎是"挂起"或卡在Wait调用中.
一般过程是:
if(this.Dispatcher.Thread != Thread.CurrentThread)
{
this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate{
this.Name = value; // Call same setter, but on the UI thread
});
return;
}
SetValue(nameProperty, value); // I have also tried a member variable and setting the textbox.text property directly.
Run Code Online (Sandbox Code Playgroud)
我的问题是,当调用 dispatcher invoke方法时,它似乎每次都挂起,并且callstack指示它处于休眠状态,等待或加入Invoke实现.
那么,有什么我做错了,我错过了,显而易见或没有,或者有更好的方法调用UI线程来设置这个属性(和其他)?
编辑:解决方案是在线程委托的末尾调用System.Windows.Threading.Dispatcher.Run()(例如,正在执行工作的地方) - 感谢所有帮助过的人.
过去一周,我一直在博客圈阅读Linq to SQL已经死亡[以及EF和Linq to Entities的长期存在].但是当我阅读MSDN上的概述时,我觉得Linq to Entities就像Linq to SQL生成SQL查询一样生成eSQL.
现在,由于底层实现(以及SQL Server还不是ODBMS)仍然是一个Relational存储,在某些时候,Entity框架必须转换为SQL查询.为什么不修复Linq to SQL问题(m:m关系,只有SQL服务器支持等)并使用Linq to SQL作为生成这些查询的层?
这是因为性能还是EF使用不同的方式将eSQL语句转换为SQL?
在我看来 - 至少对于我没有学过的头脑 - 在EF中自然适合Linq to SQL.
评论?
linq linq-to-entities entity-framework entity-sql linq-to-sql
我希望使用quartz来安排电子邮件,但我不确定采取哪种方法:
我需要以任何方式传递消息/收件人等,而且我不确定创建大量工作是否会开始增加大量内存开销,因为很可能会安排数千封电子邮件.
更新:这些电子邮件将由用户安排,而不是我 - 所以我将在运行时以编程方式添加这些电子邮件,它们不会在任何特定时间安排.
事件处理程序是否按照它们附加到事件的顺序触发?如果没有,我可以在事件处理程序上强制执行某种顺序,以便按特定顺序调用它们吗?
我现在正在玩ASP.net MVC和JQuery.我遇到了似乎没有意义的行为.
我正在调用JQuery的$.getJSON函数来填充一些div.该事件在事件中触发$(document).ready.这非常有效.
有一个小的AJAX.BeginForm,添加了在填充div时使用的另一个值.它正确调用远程函数,并在成功时调用原始的javascript函数来重新填充div.
这是奇怪的部分:在FireFox和Chrome中 - 一切正常.但是在IE8(Beta)中,对填充的Div脚本(调用$ .getJSON函数)的第二次调用会获取缓存数据,而不会询问服务器!
希望这个问题有道理:在坚果壳中 - 为什么要$.getJSON获取缓存数据?为什么它只影响IE8?
我一直在研究以粗体显示菜单项所需的努力 - 无需自己绘制菜单 - 并MFS_DEFAULT在一些谷歌搜索后发现了菜单项状态。MSDN文档提到
MFS_DEFAULT
指定该菜单项是默认菜单项。一个菜单只能包含一个默认菜单项,该菜单项以粗体显示。
我进行了实验,似乎与文档相反,我似乎能够使用此标志以粗体显示多个(或可能全部!)菜单项。有谁有这方面的经验,即多个粗体菜单项是否存在任何陷阱?实现我想要实现的目标确实感觉有点麻烦,而且我有点担心未知的副作用(即在一个菜单中有多个“默认”菜单项)。
编辑:我还应该补充一点,本文声称该MFS_DEFAULT标志除了以粗体显示菜单项外什么也不做;尽管如此,我对违反“官方”文档还是有点警惕......
EDIT2:这样做的目的是告诉用户有问题的菜单项(即粗体的菜单项)也可以通过双击有问题的控件来调用(菜单项是上下文菜单的一部分)。当我思考这个问题时,我没有考虑这样一个事实:通常只有一个命令可以与双击事件关联(天啊!)。因此我接受了zaphod的回答(它没有直接回答这个问题,但它确实解决了我的“问题”)
我对使用Python gzip模块压缩数据感兴趣.碰巧我希望压缩输出是确定性的,因为通常情况下这通常是一个非常方便的属性 - 如果一些非gzip感知的进程要在输出中寻找变化,比如说,或者如果输出将以加密方式签名.
不幸的是,每次输出都不同.据我所知,唯一的原因是gzip头中的timestamp字段,Python模块总是填充当前时间.我不认为你真的被允许有一个没有时间戳的gzip流,这太糟糕了.
在任何情况下,Python gzip模块的调用者似乎都没有办法提供底层数据的正确修改时间.(实际gzip程序似乎尽可能使用输入文件的时间戳.)我想这是因为基本上唯一关心时间戳的是gunzip写入文件时的命令 - 现在,我,因为我想要确定性的输出.这是不是要求太过分了?
还有其他人遇到过这个问题吗?
gzip使用Python的任意时间戳来获取某些数据的最不可靠的方法是什么?
我有一个php文件启动我的exe.exe执行cout并且文本以html格式打印,这一切都很好.直到我写"someline \n"; \n打破输出,我只看到最后一行.如何打印/回显其中包含多行的文本/字符串?
当前的粘贴已经注释掉,我的文本打印正常.它在控制台看起来很丑陋,当我用IE7查看源码时(虽然我主要用FF浏览),看起来很痛苦.这是我目前的php和cpp文件
<html>
<head>
</head>
<body>
<?php
echo( exec('c:/path/to/exe/launchMe.exe hey lol hi') );
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
CPP
#include <string>
#include <iostream>
#include <sstream>
using namespace std;
const string htmlLine(string s)
{
s+= "<br />";
// s += "\n";
return s;
}
int main(int argc, char *argv[])
{
stringstream s;
s << argc;
cout << htmlLine("woot") << htmlLine(s.str());
for (int i=0; i<argc; ++i)
{
s.str("");
s << i << " = " << argv[i];
cout << htmlLine(s.str());
}
return …Run Code Online (Sandbox Code Playgroud) 我正在开发一个快速项目来监控/处理数据.基本上,这只是监视器,计划和处理器.监视器使用计划检查数据(ftp,本地,imap,pop等)并将新数据发送到处理器.它们都有接口.
我正在尝试找到一种合理的方法来使用config来配置每个监视器使用的调度/处理器.这很简单:
<monitor type="any.class.implementing.monitor">
<schedule type="any.class.implementing.schedule">
...
</schedule>
<processor type="any.class.implementing.processor" />
</monitor>
Run Code Online (Sandbox Code Playgroud)
我正在努力解决的问题是配置任何旧监视器/日程表/处理器的最佳方法是什么.一方面,可以实现构造函数参数或属性(给出任何语法):
<monitor type="any.class.implementing.monitor">
<args>
<arg value="..." />
</args>
<properties>
<property name="..." value=..." />
</properties>
<schedule type="any.class.implementing.schedule">
...
</schedule>
<processor type="any.class.implementing.processor" />
</monitor>
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是每个接口中的工厂方法,它将自定义配置作为参数:
public IMonitor Create(CustomConfigSection config);
Run Code Online (Sandbox Code Playgroud)
我见过人们都使用它们.你喜欢哪个?将配置映射到构造函数时的任何技巧?
对于DI是否能适应这种混乱,我有点不知所措.最后,它将是每个监视器实例的一组绑定,除了默认值(配置可以覆盖)之外,这似乎毫无意义.
.net ×3
php ×2
asp.net-mvc ×1
bold ×1
c# ×1
c++ ×1
dispatcher ×1
echo ×1
entity-sql ×1
events ×1
factory ×1
getjson ×1
gzip ×1
interface ×1
invoke ×1
java ×1
jquery ×1
linq ×1
linq-to-sql ×1
menu ×1
multiline ×1
python ×1
scheduling ×1
windows ×1
wpf ×1