我正在使用.Net 3.5上的Reactive Extensions库的任务部分
它大部分工作顺利,但在一个地方它调用相同的任务两次.
电话看起来像这样:
Task.Factory.StartNew(
() => Processor.ProcessMessage(incomingMessage),
TaskCreationOptions.PreferFairness );
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?这是一个错误吗?
----更新
我认为问题在于c#在lambdas中关闭的方式.问题不在TPL中,与普通旧线程池一起返回同样的问题.
这解决了它:
foreach (var Processor in processors)
{
object[] crap = new object[2];
crap[0] = Processor;
crap[1] = incomingMessage;
Task.Factory.StartNew(Magic, crap, TaskCreationOptions.PreferFairness);
}
public void Magic(object obj)
{
object[] crap =(object[]) obj;
((IIncomingMessageProcessor)crap[0]).ProcessMessage((IncomingMessageBase)crap[1]);
}
Run Code Online (Sandbox Code Playgroud)
原始来源是:
foreach (var Processor in processors)
{
Task.Factory.StartNew(
() => Processor.ProcessMessage(incomingMessage),
TaskCreationOptions.PreferFairness );
}
Run Code Online (Sandbox Code Playgroud)
所以我在处理器周围关闭,我想问题是它为lambda回收相同的对象并交换处理器.
----更新2
我确信这是问题所在.我在创建任务时重构和调试了System.Threading.dll,它是使用相同的委托(Same ObjectID)创建的,并且处理器在迭代之间的Target属性中发生了变化.谁知道一个好的工作?
----更新3这也有效(感谢Judah Himango):
foreach (var processor in processors)
{
var crap = processor;
Task.Factory.StartNew(() => crap.ProcessMessage(incomingMessage), …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用票证字段作为外键来获取注释,但我收到以下错误:
Caused by: Exception [EclipseLink-6078] (Eclipse Persistence Services - 2.0.1.v20100213-r6600): org.eclipse.persistence.exceptions.QueryException
Exception Description: The class of the argument for the object comparison is incorrect.
Expression: [
Base com.test.forum.model.Comment]
Mapping: [org.eclipse.persistence.mappings.OneToOneMapping[ticket]]
Argument: [751]
Run Code Online (Sandbox Code Playgroud)
这是我在javabean中使用的代码: - 隐藏引用的文本 -
@JoinColumn(name = "ticket", referencedColumnName = "id")
@ManyToOne(optional = false)
private Ticket ticket;
public List<Comment> findComment(int id) {
Query q = em.createQuery("SELECT c FROM Comment c WHERE c.ticket = 751");
return q.getResultList();
}
Run Code Online (Sandbox Code Playgroud)
谢谢
嗨,我正在寻找基于jQuery的相等高度列.我知道有很多漂浮在我身边,但我的要求有点不同.我想在Mega菜单中使用它们,其中大约有4-5个下拉列表,每个下拉列表有3-4列.
我希望所有这些3-4列具有相同的高度但不是所有的下拉列表,因为列高度在另一个下拉列表中会有所不同,具体取决于该部分的内容.
我在MooTools中找到了一个完美符合我要求的解决方案.下面的MooTools代码使得特定div中的所有列都等于其父div的高度
MooTools代码:
var Equalizer = new Class({
initialize: function(elements) {
this.elements = $$(elements);
},
equalize: function(hw) {
if(!hw) { hw = 'height'; }
var max = 0,
prop = (typeof document.body.style.maxHeight != 'undefined' ? 'min-' : '') + hw; //ie6 ftl
offset = 'offset' + hw.capitalize();
this.elements.each(function(element,i) {
var calc = element[offset];
if(calc > max) { max = calc; }
},this);
this.elements.each(function(element,i) {
element.setStyle(prop,max - (element[offset] - element.getStyle(hw).toInt()));
});
return max;
}
});
Run Code Online (Sandbox Code Playgroud)
用法: …
我昨天在Magento的主页上问了这个问题静态块,它回答了我关于将cms /块挂钩到现有块的问题(在该示例中为内容).
但现在我想知道如何创建自己的块.
我在.phtml模板中有这个:
<?php echo $this->getChildHtml('home_flash') ?>
Run Code Online (Sandbox Code Playgroud)
这在我的cms.xml文件中
<reference name="home_flash">
<block type="cms/block" name="home-page-flash" before="content">
<action method="setBlockId"><block_id>home-page-flash</block_id></action>
</block>
</reference>
Run Code Online (Sandbox Code Playgroud)
但这不起作用.
我也曾尝试创建自己的块类型,(通过复制面包屑声明)在page.xml文件:
<block type="page/html_home_block" name="home_block" as="home_block" template="page/template/home_block.phtml"/>
Run Code Online (Sandbox Code Playgroud)
该文件存在但未呈现.
但是当我像这样引用块时:
<block type="page/html_breadcrumbs" name="home_block" as="home_block" template="page/template/home_block.phtml"/>
Run Code Online (Sandbox Code Playgroud)
它使得我的家乡块模板,但原来的CMS /块不重视它.
希望所有的不同的情况表明正在发生的事情,并强调在我的知识缺口不够好,有人来回答,我必须为"注册"我的新"home_block"类型的地方?
我有一个类EventContainer.cs,它包含一个事件,比如说:
public event EventHandler AfterSearch;
Run Code Online (Sandbox Code Playgroud)
我有另一个类,EventRaiser.cs.如何从这堂课中筹集(而不是处理)上述事件?
引发的事件将依次调用EventContainer类中的事件处理程序.这样的事情(这显然不正确):
EventContainer obj = new EventContainer();
RaiseEvent(obj.AfterSearch);
Run Code Online (Sandbox Code Playgroud) 我想告诉 Visual Studio 在程序的第一条指令处中断(在main()调用函数之前)。我记得可以在 CodeWarrior IDE 中进行嵌入式开发,这在 Visual Studio 中可行吗?
请任何人都可以帮助我把一些东西放在iframe上像div或canvas,我的情况是我有来自Photosynth.net的iframe,我需要把这个iframe放在这个问题上?我使用z-index但仍然无法正常工作.
我有一个带有DataGridView元素的简单表单.在构造函数中,添加了网格列并设置了DataTable.当我然后调用AutoResizeColumns()时,它不会像通过例如按钮事件调用那样调整列的大小.代码看起来像这样(简化):
public MyDialog()
{
InitializeComponent();
dgv.Columns.AddRange(SomeClass.MyColumns);
dgv.DataSource = SomeClass.Table;
// This doesn't work:
dgv.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
Run Code Online (Sandbox Code Playgroud)
AutoResizeColumns()通常可以工作但不是那时.顺便说一句,我需要这个来实现像这里请求/描述的行为.有任何想法吗?
我正在使用Magento版本1.4.1.1,我想在sales_flat_quote_item表中保存一个值(并传递给它sales_flat_order_item).
我已经找到了这个教程,但我不确定它是否仍然相关(对于Magento版本1.4.1.1),因为它谈到了一个名为的表sales_order,我相信现在sales_flat_order看起来有点不同.
该方法是否仍然有效?如果是这样的-我可以用它sales_flat_quote_item和sales_flat_order_item什么entity_type_id我应该放在称道:
`insert into eav_attribute('entity_type_id','attribute_code','attribute_model','backend_model','backend_type','backend_table','frontend_model','frontend_input','frontend_input_renderer','frontend_label','frontend_class','source_model','is_global','is_visible','is_required','is_user_defined','default_value','is_searchable','is_filterable','is_comparable','is_visible_on_front','is_html_allowed_on_front','is_unique','is_used_for_price_rules','is_filterable_in_search','used_in_product_listing','used_for_sort_by','is_configurable','apply_to','position','note','is_visible_in_advanced_search' )
values(11, 'my_new_column', null, '', 'static', '', '', 'text', '','',null, '', 1,1,1,0,'',0,0,0,0,0,0,1,0,0,0,1,'',0,'',0);`
Run Code Online (Sandbox Code Playgroud)
如果在新的Magento版本中不是这样做的话,我应该怎么做?
谢谢,Shani
我需要显示数据的只读视图.我已选择DisplayField组件来执行此操作.我的问题是,我想要一种简单的方法来调用BasicForm.setValues(values)并在其中一个displayFields中自动正确呈现日期字符串.我没有找到任何能够为我做这件事的事情(例如渲染器功能),并且我将在调用之前手动格式化日期字符串setValues(values).有没有一些光滑的方式来做到这一点?
谢谢!