我有一个名为Source的类,它有惰性 val isValid,它会执行一些需要时间的网络检查。我已经让它返回 Future[Boolean] 所以它不会阻塞主线程:
lazy val isValid: Future[Boolean] = doSomeChecks()
Run Code Online (Sandbox Code Playgroud)
现在,我想检查一些来源并丢弃无效的来源。
这是一些伪代码:
val sources = Seq(Source1, Source2,...)
val validOnes: Seq[Source] = sources.filter(_.isValid)
Run Code Online (Sandbox Code Playgroud)
我正在考虑某种方法,可以将从isValid返回的 Future[Boolean] 转换为其他一些 Future,在验证检查完成后 可以使用整个Source对象进行解析。
做这个的最好方式是什么?
我已插入~2M节点(通过Java API),并在使用一两天后删除它们(通过java).现在我的数据库有16k节点,重量为6 GB.
为什么这个空间没有被释放?
可能是什么原因?
我的自定义错误页面处理程序定义如下:
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Error");
}
app.UseStatusCodePagesWithReExecute("/Error/{0}");
app.UseMvc(routes =>
{
...
}
Run Code Online (Sandbox Code Playgroud)
然后在错误控制器中:
public class ErrorController : Controller
{
public IActionResult Index(int errorCode)
{
switch (errorCode)
{
case 404:
return View($"~/Views/Error/{errorCode}.cshtml");
}
return View(errorCode);
}
}
Run Code Online (Sandbox Code Playgroud)
在生产模式下一切正常,但在开发时,有两种情况:
我正在强制执行 404,例如。
if(nothingFound)
{
return NotFound();
}
Run Code Online (Sandbox Code Playgroud)
然后它进入 ErrorController 操作,甚至是视图(404.cshtml),但之后它会打印整个调试,标题为:
ArgumentException: 已添加具有相同键的项目。关键字:System.Object
使用时是否正常app.UseDeveloperExceptionPage(),还是我配置错误?
更新
堆栈跟踪:
System.ArgumentException: An item with the same key has already been added. Key: System.Object
at System.ThrowHelper.ThrowAddingDuplicateWithKeyArgumentException(Object key) …Run Code Online (Sandbox Code Playgroud) 我希望通过在Windows应用商店应用中的两个帧之间传递数据来进行简单导航.
当我从MainPage开始,导航到BlankPage
private void goTo_BlankPage()
{
this.Frame.Navigate(typeof(BlankPage),multimedia);
}
Run Code Online (Sandbox Code Playgroud)
然后我使用BackButton:
<Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/>
Run Code Online (Sandbox Code Playgroud)
一切都很顺利.
但是当我添加:
protected override void OnNavigatedTo(NavigationEventArgs e){}
Run Code Online (Sandbox Code Playgroud)
到BlankPage(所以我可以处理传递的数据),然后尝试从它返回,我得到了System.ArgumentNullException.
可能有什么不对?