task-parallel-library 相关问题

自.NET 4以来,任务并行库是.NET Framework的一部分。它是一组API,使开发人员能够对异步应用程序进行编程。

对 ps_socialfollow.tpl 进行硬编码以支持多语言后出现 Smarty 错误

我的 prestashop 版本是 1.7.3.4,php 7.1。 这是 ps_socialfollow.tpl 的默认内容: {区块名称='block_social'} {foreach fr... 我的 prestashop 版本是 1.7.3.4,php 7.1。 这是 ps_socialfollow.tpl 的默认内容: {block name='block_social'} <div class="social_follow"> <ul> {foreach from=$social_links item='social_link'} <li class="{$social_link.class}"><a href="{$social_link.url}" target="_blank">{$social_link.label}</a></li> {/foreach} </ul> </div> {/block} 模块默认不支持多语言。所以我对它进行了硬编码以支持多语言,如下所示: {block name='block_social'} {if $language.language_code == 'en-us'} <div class="social_follow"> <ul> <li class="facebook"><a href="" target="_blank">{$social_link.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.label}</a></li> </ul> </div> {elseif $language.language_code == 'ko'} <div class="social_follow"> <ul> <li class="facebook"><a href="" target="_blank">{$social_link.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.label}</a></li> </ul> </div> {/if} {/block} 只要我不激活调试模式,它就可以完美地工作。激活调试模式后,我收到此错误消息: > ContextErrorException in smarty_internal_templatebase.php(157) : > eval()'d code line 68: > Notice: Undefined index: social_link > in smarty_internal_templatebase.php(157) : eval()'d code line 68 > at ErrorHandler->handleError('8', 'Undefined index: social_link', '/var/www/html/store/vendor/prestashop/smarty/sysplugins/smarty_internal_templatebase.php(157) > : eval()'d code', '68', array('_smarty_tpl' => > object(SmartyDevTemplate))) in smarty_internal_templatebase.php(157) : > eval()'d code line 68 > at content_5b4fc96564eec0_18848187(object(SmartyDevTemplate)) in smarty_internal_templatebase.php line 188 > at Smarty_Internal_TemplateBase->fetch(object(SmartyDevTemplate), null, null, null, false, true, false) in SmartyDevTemplate.php line 41 > at SmartyDevTemplateCore->fetch() in Module.php line 2282 > at ModuleCore->fetch('module:ps_socialfollow/ps_socialfollow.tpl', 'ps_socialfollow|1|3|3|3|1|1') in ps_socialfollow.php line 201 > at Ps_Socialfollow->renderWidget('displayFooterAfter', array('smarty' => object(SmartyDevTemplate), 'cookie' => > object(Cookie), 'cart' => object(Cart), 'altern' => '1')) in Hook.php > line 929 > at HookCore::coreRenderWidget(object(Ps_Socialfollow), 'displayFooterAfter', array('smarty' => object(SmartyDevTemplate), > 'cookie' => object(Cookie), 'cart' => object(Cart), 'altern' => '1')) > in Hook.php line 881 > at HookCore::exec('displayFooterAfter', array('smarty' => object(SmartyDevTemplate), 'cookie' => object(Cookie), 'cart' => > object(Cart), 'altern' => '1'), null) in smarty.config.inc.php line > 168 > at smartyHook(array('h' => 'displayFooterAfter'), object(SmartyDevTemplate)) in SmartyLazyRegister.php line 83 > at SmartyLazyRegister->__call('smartyHook', array(array('h' => 'displayFooterAfter'), object(SmartyDevTemplate))) in > smarty_internal_templatebase.php(157) : eval()'d code line 691 > at content_5b4fc96527b774_70366195(object(SmartyDevTemplate)) in smarty_internal_templatebase.php(157) : eval()'d code line 248 > at content_5b4fc965282d34_37575711(object(SmartyDevTemplate)) in smarty_internal_templatebase.php line 188 > at Smarty_Internal_TemplateBase->fetch('index.tpl', null, 'layouts/layout-full-width.tpl', object(SmartyDev), false, true, > false) in SmartyDev.php line 41 > at SmartyDev->fetch('index.tpl', null, 'layouts/layout-full-width.tpl') in FrontController.php line 684 > at FrontControllerCore->smartyOutputContent('index.tpl') in FrontController.php line 668 > at FrontControllerCore->display() in Controller.php line 273 > at ControllerCore->run() in Dispatcher.php line 428 > at DispatcherCore->dispatch() in index.php line 28 我对 php 的了解甚至不值一提,因为它更多地基于我能够做的一点点逻辑思维,而不是实际知识。因此,我无法自行修复聪明的错误。 我必须做哪些修改?在该模块中实现多语言(网站)支持的正确方法是什么? 我根据Alexander Grosul的建议编辑了ps_socialfollow.tpl。 <div class="social_follow"> <ul> <li class="facebook"><a href="" target="_blank">{$social_link.facebook.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.twitter.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.instagram.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.googleplus.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.pinterest.label}</a></li> </ul> </div> 结果是完全相同的 smarty 错误。 我也尝试过这个版本: {block name='block_social'} <div class="social_follow"> <ul> {foreach from=$social_links item='social_link'} {if $language.language_code == 'en-us'} <li class="facebook"><a href="" target="_blank">{$social_link.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.label}</a></li> {elseif $language.language_code == 'ko'} <li class="facebook"><a href="" target="_blank">{$social_link.label}</a></li> <li class="twitter"><a href="" target="_blank">{$social_link.label}</a></li> <li class="instagram"><a href="" target="_blank">{$social_link.label}</a></li> <li class="googleplus"><a href="" target="_blank">{$social_link.label}</a></li> <li class="pinterest"><a href="" target="_blank">{$social_link.label}</a></li> {/if} {/foreach} </ul> </div> {/block} 这不会触发 smarty 错误,只是显示所有图标。无论选择哪种语言,都会立即执行。 在您的示例中,默认版本中有循环,但修改后的版本中没有循环。这意味着您不能使用 $social_link,因为它不存在,而是在循环内创建的。您只能使用传入的 $social_links 并指出您要使用该数组的哪个元素,例如 $social_links.twitter.label 等。 您应该在 Github 上查看我针对所有版本的 Prestashop 的增强型免费社交媒体模块“lgf_socialfollow”

回答 2 投票 0

理解多个连续的await语句

我正在研究ContinueWith函数,但最终我不明白它。 在此示例代码中: var s = Task.FromResult(true).ContinueWith(async t => t).ContinueWith(async t =>...

回答 3 投票 0

在ContinueWith中重新抛出先前的异常

###简介 在对我的代码困惑了一段时间后,我发现异常不一定通过ContinueWith传播: int 零或一 = 1; Task.Factory.StartNew(() => 3 / ZeroOrOne) .

回答 2 投票 0

循环和Task.WhenAll有什么区别?

我有一个方法,里面有一个foreach循环,在循环内我调用了几个异步操作。我让 ChatGPT 做了审查,他说你可以通过添加...来提高性能

回答 3 投票 0

自我取消任务会抑制其他实例

我正在尝试创建一个任务的子类,它会自行取消并等待它被释放。 在单元测试时,我遇到了奇怪的失败测试用例。最终归结为重复。我什至可以...

回答 1 投票 0

为什么在处理长时间运行的 CPU 密集型任务时,Task.Run() 会阻止控制器操作?

我正在开发 .NET 6 Web API,并使用 Task.Run() 处理 CPU 密集型任务,将其卸载到后台线程。然而,我的控制器操作似乎仍然被阻止,并且请求...

回答 1 投票 0

CancellationToken.ThrowIfCancellationRequested 后的故障与取消任务状态

通常我不会发布带有答案的问题,但这次我想引起一些注意,我认为这可能是一个晦涩但常见的问题。就是被这个问题触发的,从那时起我

回答 2 投票 0

Task.Start/Wait 和 Async/Await 有什么区别?

我可能错过了一些东西,但是这样做有什么区别: 公共无效我的方法() { 任务 t = Task.Factory.StartNew(DoSomethingThatTakesTime); t.Wait(); UpdateLabelToSayItsComplete(...

回答 7 投票 0

任务工厂和线程本地存储

我在循环中从任务工厂创建 x 个任务。当我等待所有任务完成时,这些任务会开始并完成一些工作。 我的问题是每个任务/线程都会初始化它的流...

回答 2 投票 0

循环和任务有什么区别?WhenAll?

我有一个方法,里面有一个foreach循环,在循环内我调用了几个异步操作。我让 ChatGPT 做了审查,他说你可以通过添加...来提高性能

回答 2 投票 0

为什么我应该更喜欢单个“await Task.WhenAll”而不是多个等待?

如果我不关心任务完成的顺序,只需要它们全部完成,我是否仍然应该使用await Task.WhenAll而不是多个await?例如,DoWork2 是否低于首选方法...

回答 7 投票 0

嵌套 Parallel.ForEach 循环

我有一些代码,目前正在针对多核架构中的并发性进行优化。在我的一堂课中,我发现了一个嵌套的 foreach 循环。基本上,外循环迭代

回答 4 投票 0

我们是否需要等待Task.Run中的内部任务

我有以下代码 任务.运行(() => 长时间运行任务() .ContinueWith(_ => Finisher())) 。等待(); 我们有一个等待者等待外部任务(...

回答 1 投票 0

.net 6 中的elastic-apm-agent 生成大量 Microsoft-Windows-DotNETRuntime/ExceptionThrown 事件

我们在 ASP .net6 应用程序中使用 prometheus-net.DotNetMetrics 进行系统监控。当我们开始使用适用于 .net 的 Elastic Apm 代理时,dotnet_exceptions_total 指标开始显示增加......

回答 1 投票 0

顺序执行多个异步任务,出现异常时继续

我想顺序执行多个异步任务。 foreach(消息中的 var msg) { 等待 smtp.SendAsync(msg); } 但是,如果其中一项任务失败,我希望其余任务继续进行。还有

回答 2 投票 0

以低占用空间分割大 CSV 文件和多线程上传

我正在尝试将大的 CSV 文件拆分为较小的文件,并将它们同时发送到 azure 存储帐户。 我几乎逐条记录地读取大文件(源)并将其写入临时本地...

回答 1 投票 0

确保 dotnet 任务在超出垃圾收集器范围时停止

我有一个后台任务,正在使用任务进行建模,并使用 IAsyncDisposable 停止该任务。 // 执行 公共密封类 Worker :IAsyncDisposable { 私有只读

回答 1 投票 0

将任务转换为任务的正确方法是什么<T>?

我使用一个接受Task的库,但有时我必须只传递Task,我必须将其转换为Task。转换 ...

回答 1 投票 0

如何使用yield返回并行块或Task中Item的集合

我正在寻求有关如何使用yield关键字在并行块或任务块中返回IEnumerable的帮助。 这是伪代码: 公共 IEnumerable> ReadFile( ) ...

回答 2 投票 0

如何实现高效的 WhenEach 来传输 IAsyncEnumerable 任务结果?

我正在尝试使用 C# 8 提供的新工具更新我的工具集,一种似乎特别有用的方法是返回 IAsyncEnumerable 的 Task.WhenAll 版本。这个方法应该...

回答 6 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.