我的代码中有几种情况,各种线程可以创建工作项,由于各种原因,不应该并行完成.我想确保工作以FIFO方式完成,无论它来自哪个线程.在Java中,我将工作项放在单线程上ExecutorService; 在C#中是否有等价物?我用Queue一堆和一些lock(){}块拼凑了一些东西,但是能够使用现成的和经过测试的东西会很好.
更新:有没有人有System.Threading.Tasks的经验?它有这种解决方案吗?我正在写一个MonoTouch的应用程序,所以谁知道,如果我甚至可以找到它的反向移植版本,我能得到工作,但它会至少是值得思考的未来.
更新#2对于C#开发人员不熟悉我说的Java库,基本上我想要的东西,可以让不同的线程交班工作项目等,所有这些工作项目将在单个线程中运行(这不是任何的调用线程).
更新,6/201:如果我现在正在构建一个类似的系统,我可能会根据Matt Craig的回答使用Reactive Extensions.我要离开扎卡里·耶茨的回答公认的一个,不过,因为如果你在思考的Rx你可能甚至不会问这个问题,我认为是比较容易bodge到预先的Rx程序.ConcurrentQueue
我想知道Spring在其Web流产品中使用Spring EL而不是OGNL究竟是什么原因:
使用OGNL,我可以直接通过流动态创建简单类和执行方法等.我知道这不是一个很好的做法,这样做内实际的网页模板(即JSP)的,因为它们是基于演示文稿,但网络流量控制你的程序的逻辑,我觉得使用OGNL有效那里是非常方便的功能.此外,您可以测试流量以确保其轻松工作.
那么,有两个问题:
使用Spring EL而不是OGNL有什么主要好处,特别是在Spring Webflow的上下文中?
你能用Spring EL创建对象吗?
是否有一个开源类别定义了一个方法,如-[NSString pluralizeString]复数正常的英语非专有名词,检查所有已知的异常,等等?
否则,是否有一个免费的Web API可以使用Wolfram Alpha除了可以做同样的技巧?
确定性有限状态机是一种简单的计算模型,广泛用作基础CS课程中自动机理论的介绍.它是一个简单的模型,相当于正则表达式,它确定某个输入字符串是Accepted还是Rejected.抛开一些手续,有限状态机的运行包括:
一个运行在机器上开始处于起步状态.读取输入字符串的每个字母; 如果当前状态与对应于该字母的另一个状态之间存在转换,则当前状态将更改为新状态.在读取最后一个字母后,如果当前状态是接受状态,则接受输入字符串.如果最后一个状态不是接受状态,或者一个字母在运行期间没有来自状态的相应拱门,则拒绝输入字符串.
注意:这种短暂的破坏远不是FSM的完整,正式的定义; 维基百科的精彩文章是对该主题的精彩介绍.
例如,以下机器告知从左到右读取的二进制数是否具有偶数个0s:

{0,1}.(S1, 0) -> S2,(S1, 1) -> S1,(S2, 0) -> S1和(S2, 1) -> S2.使用您选择的语言实施FSM.
FSM应接受以下输入:
<States> List of state, separated by space mark.
The first state in the list is the start …Run Code Online (Sandbox Code Playgroud) 我一直在阅读reprPython.我想知道输出的应用是什么repr.例如
class A:
pass
repr(A) ='<class __main__.A at 0x6f570>'
b=A()
repr(b) = '<__main__.A instance at 0x74d78>'
Run Code Online (Sandbox Code Playgroud)
什么时候会对'<class __main__.A at 0x6f570>'或感兴趣'<__main__.A instance at 0x74d78>'?
我有一个网站,集成了一个风扇盒和Facebook的一些其他东西.为了让一切看起来正确,我已经实现了如下FBML:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">
Run Code Online (Sandbox Code Playgroud)
它确实工作得很好,除了我发现我的客户的公司在员工上有一个块,所以他们无法访问Facebook.但是这会导致站点爆炸而不能完全加载,因为防火墙不允许此站点上的FB代码正确启动.
由于我没有这个块,我无法远程复制它,并且无法准确指出它正在做什么导致它显示不正确.
简而言之,我可以在代码中实现一些检查并查看FB是否可访问的内容,如果是,则只触发fbml?我主要是为网站使用PHP和Jquery.
提前致谢.
编辑:请求的代码段
从最开始:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">
Run Code Online (Sandbox Code Playgroud)
然后在调用fanbox的页面中:
<div id="fbbox">
<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"></script>
<div id="fb-root">
<fb:fan profile_id="xxxxxxxx" width="235" height="200" connections="12" stream="false" header="false" css="http://www.xxxx.com/xxxx.css?33" ></fb:fan>
</div>
<script>
<!--
window.fbAsyncInit = function() {
FB.init({appId: 'xxxxxxx', status: true, cookie: false, xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
-->
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
我已经xxx了一些特定的设置,但我可以向你保证这些在实际代码中是正确的.
我正在尝试将Criteria查询导出为CSV,Excel,你有什么.我遇到的问题是类别代码运行干净(如,不会抛出任何错误),但它不会生成任何数据.我知道这data是一个列表的ArrayList.任何人都有解决方法,或告诉我,如果我做错了什么?
这是我的域对象:
class Machine {
String name,
category
// constraints, etc
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器动作(主要来自插件页面):
def categories = {
if(params?.format && params.format != "html"){
response.contentType = ConfigurationHolder.config.grails.mime.types[params.format]
response.setHeader("Content-disposition", "attachment; filename=categories.${params.extension}")
def data = Machine.createCriteria().list {
projections {
groupProperty("category")
countDistinct("id")
}
}
exportService.export(params.format, response.outputStream, data, [:], [:])
}
Run Code Online (Sandbox Code Playgroud) 我有一个关于C++ 0x lambdas的问题.在我的代码中,知道给定类型是否是C++ 0x lambda表达式的类型将是有益的.举个例子:
struct foobar
{
void operator()()
{
}
};
auto lambda = []{};
typedef is_lambda < decltype(lambda) > ::type T; // T would be a true_type
typedef is_lambda < foobar > ::type T; // T would be a false_type
Run Code Online (Sandbox Code Playgroud)
将lambda表达式与函数和成员函数类型区分开来相当容易.函子是另一回事.
我在这里看到的问题是根据即将推出的C++ 0x标准定义lambda表达式; 唯一必须定义的是公共呼叫运营商.然而,对于仿函数也是如此; 测试调用操作符的存在是不足以区分lambda表达式和仿函数.此外,如果不存在仿函数的运算符,则会发生编译器错误,因为SFINAE不适用.这是什么时候发生的?仿函数的调用操作符可能是模板化的.所以,这样的代码:
typedef decltype(&T::operator()) call_type;
Run Code Online (Sandbox Code Playgroud)
将使用非模板化调用运算符的lambda表达式和仿函数,并为模板化调用运算符生成编译器错误.
我相信is_lambda < >只能使用内部编译器功能创建特征.你看到了如何实现这个特性的方法吗?
我一直在做很多关于使用Qt/C++处理错误的研究,我仍然像我开始时一样迷失.也许我正在寻找一种简单的方法(像其他语言一样).其中一个特别提供了一个我处理过的未处理的例外情况.当程序遇到问题时,它会抛出未处理的异常,以便我可以创建自己的错误报告.该报告从我的客户机器发送到在线服务器,我稍后会阅读.
我在C++中遇到的问题是,任何错误处理都必须考虑到BEFORE手(想想try/catch或大规模条件).根据我的经验,代码中的问题没有被考虑过,否则就不会有问题.
在没有跨平台错误处理/报告/跟踪机制的情况下编写跨平台应用程序对我来说有点吓人.
我的问题是:是否有任何类型的Qt或C++特定的"全能"错误捕获机制,我可以在我的应用程序中使用,以便,如果出现问题,我至少可以在崩溃前写一个报告?
例:
class MainWindow: public QMainWindow
{
[...]
public slots:
void add_clicked();
}
void MainWindow::add_clicked()
{
QFileDialog dlg(this, Qt::Sheet);
QString filename = dlg.getOpenFileName(this);
if(!filename.isEmpty())
{
QStringList path = filename.split(QDir::separator());
QString file = path.at(path.count()); // Index out of range assertion.
if(!lst_tables->openDatabase(filename))
{
[...]
}
}
}
Run Code Online (Sandbox Code Playgroud)
我希望此错误被捕获为未处理的异常和应用程序退出而不向用户显示Windows/Mac操作系统上的默认崩溃窗口.在将断言消息写入文件等之后,我只是希望它能够很好地退出.
如何使用在美国服务器上执行的PERL脚本确定各个国家/地区的当前日期和时间?例如,getDTnow()应确定服务器上的当前日期和时间,并使用它来返回各个国家/地区的日期和时间.
PS:如果只使用内置函数,没有任何外部模块,那将是很好的.
结论:日期数学是[使用脏话这里]复杂,容易出错.IRC上的其他perl专家,小组和网络的其他部分证实了以太一直在建议我 - 使用DateTime.DVK的解决方案也非常适合那些不介意搞乱perl环境的人.(注意:虽然在Windows上,Time :: Piece文档的警告部分说当在Win32上的Threads中设置$ ENV {TZ}时应该小心).