小编m.c*_*acz的帖子

Scala 按未来结果过滤集合

我有一个名为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对象进行解析。

做这个的最好方式是什么?

scala future

7
推荐指数
1
解决办法
3875
查看次数

neo4j"空"数据库占用了大量磁盘空间

我已插入~2M节点(通过Java API),并在使用一两天后删除它们(通过java).现在我的数据库有16k节点,重量为6 GB.

为什么这个空间没有被释放?

可能是什么原因?

java database diskspace neo4j

5
推荐指数
1
解决办法
1412
查看次数

解决错误-“返回404时已经添加了具有相同键的项目”

我的自定义错误页面处理程序定义如下:

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)

在生产模式下一切正常,但在开发时,有两种情况:

  1. 我正在点击“就像那样”的 404 页面,它显示了我的自定义 404 页面(这是正确的)
  2. 我正在强制执行 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)

c# .net-core asp.net-core

4
推荐指数
1
解决办法
5506
查看次数

切换帧后的System.ArgumentNullException(Windows应用商店应用)

我希望通过在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.

可能有什么不对?

.net c# windows-store-apps

1
推荐指数
1
解决办法
280
查看次数