小编Sha*_*ane的帖子

在线程之间共享局部变量是否安全(通过回调闭包)?

我想做类似下面的事情 - 基本上我调用异步操作,它将在另一个线程中调用回调,我想等待它完成"内联".我担心的是,由于存储在寄存器中,因此跨线程共享的变量变量(bar和event)可能无法同步.如果它们是成员变量,我可以将它们标记为volatile,但volatile不能用于堆栈上创建的局部变量.我可以使用成员变量,但我认为它更干净,不会让我的课程整洁.

Bar bar = null;
ManualResetEvent event = new ManualResetEvent(false);

foo.AsyncOperation(new Action(()=>{    
    // This delegate will be called in another thread
    bar = ...
    event.Set();
}));

event.WaitOne(timeout);
// use bar
Run Code Online (Sandbox Code Playgroud)

.net c# concurrency multithreading

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

错误"svga_sampler_view_destroy中的上下文不匹配"在VM中的Ubuntu上运行GUI程序

我在Windows 10上的VMware工作站播放器VM上运行Ubuntu 16.04.当我运行一些GUI程序时(已经在Spyder和Chromium上观察到这一点)我收到消息"svga_sampler_view_destroy中的上下文不匹配"被重复打印到控制台.

它似乎与虚拟化有关,因为它会在关闭3D显示加速时消失.我不想关闭加速,因为它对视频性能有很大影响.

vmware-player ubuntu-16.04

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

建筑弹簧批量样品应用

我正在尝试为春季批次2.1.6构建示例应用程序.(即spring-batch-2.1.6.RELEASE/samples/spring-batch-samples)使用maven但是因为缺少插件而出现此错误:

[错误]插件com.springsource.bundlor:com.springsource.bundlor.maven:1.0.0.RELEASE或其中一个依赖项无法解析:找不到com.springsource.bundlor:com.springsource.bundlor.maven: jar:http://repo1.maven.org/maven2中的1.0.0.RELEASE 被缓存在本地存储库中,在中心的更新间隔过去或强制更新之前,不会重新尝试解析 - >

我可以设置另一个存储库来获取此插件吗?我有点惊讶得到这个错误,因为这是春季批次的最新版本.

这是下载时pom中的存储库部分:

<repositories>
    <repository>
        <id>com.springsource.repository.bundles.external</id>
        <name>SpringSource Enterprise Bundle Repository - SpringSource Bundle External</name>
        <url>http://repository.springsource.com/maven/bundles/external</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)

spring-batch

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

如何在禁用从根路径访问的同时设置 ASP.NET Core 应用程序的基本路径?

我知道我可以使用设置我的服务的基本路径,app.UsePathBase("/AppPath");以便我的 API 可用,http://example.com/AppPath/controller1但如果我这样做,我的 API 也可以从根路径获取http://example.com/controller1。如何禁用从根路径访问?

我也尝试使用这样的路线, app.UseMvc(routes => routes.MapRoute("default", "IRate/{controller}/{action}/{id?}"));但它有同样的问题。

我想这样做的原因是因为当它在生产中部署时,它将部署在应用程序前缀下(而不是作为根应用程序),并且当我在调试期间在本地主机上运行 API 时,我想模拟生产条件。

asp.net-core

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

Eclipse IDE是否支持JSF 2.0?

我安装了WTP 3.1插件,并且还安装了Glassfish v3插件.我可以注册我的服务器.

当我创建动态Web项目时,我可以看到可用的最大动态Web模块版本是2.5.然后我选择Glassfish v3的默认配置,但是当我查看JSF时,默认情况下不会选中它.当我选择它时,可用的最大版本是1.2.

我想将JSF与facelets一起使用 - Eclipse是否支持这个?我似乎无法在Eclipse WTP站点上找到任何有用的东西.

eclipse jsf jsf-2

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

我可以在Maven中使用混合java和scala代码编译具有依赖关系的Scala项目吗?

我有一个scala和java代码的项目,我目前使用scala IDE插件在eclipse中管理.目前,组织目录结构使得一些包具有java和scala代码.有些scala类依赖于java类,还有其他依赖于scala类的java类.该插件透明地处理所有这些 - 我相信(但我不是100%肯定)scala编译器将java和scala代码编译在一起,这是交叉依赖关系的处理方式.我确实找到了一些使用Maven编译混合项目的引用,例如这里,但我看到的是将java和scala分成两个独立的源树.Maven尝试首先编译scala代码,因为它依赖于java代码而失败.同样,如果首先编译java代码,它也会失败,因为依赖关系是双向的.有没有办法让Maven像eclipse插件一样编译所有代码?我也希望能够生成一个eclipse项目,如果可能的话,不需要做太多的手动修复.

java eclipse scala dependency-management maven

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

为什么 NuGet 将包存储在 C:\Users\&lt;UserName&gt;\.nuget\packages 中?

我知道现在可以为所有项目配置一个全局包目录,但我注意到 NuGet 也将文件放在我的主目录中。是否可以配置一个用于所有项目的存储库?

nuget

7
推荐指数
2
解决办法
3575
查看次数

无法检查Eclipse中的scala代码中的变量

当我在eclipse中调试Scala应用程序时,我在启动时会看到一条带有此消息的对话框:由于缺少行号工件,无法在Main中设置断点.

当我尝试检查变量时,我在表达式窗口中收到此错误:"[在Main [in [Working copy] Main.scala [in [in src [in Scala1]]]]]中不存在"

我已经尝试为Scala编译器设置各种调试级别设置,包括"line"和最高设置,但它似乎没有任何区别.在搞乱设置之后我能够看到内容但是无法再次执行,所以我想知道是否存在与某个地方的错误缓存状态有关的错误.

我正在使用Eclipse的Indigo服务版本和Scala插件的2.0.0v2_09版本.

eclipse scala scala-ide

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

什么是基于事件的异步模式的替代品?

我正在寻找实现一个API,其中多个操作可以并发运行.MS建议使用基于事件的异步模式:

// Asynchronous methods.
public void Method1Async(string param, object userState);
public event Method1CompletedEventHandler Method1Completed;

public void CancelAsync(object userState);
public bool IsBusy { get; }
Run Code Online (Sandbox Code Playgroud)

然而,这似乎有点笨拙 - 它要求客户过滤掉不适合他们的回复并在完成后断开事件处理程序等.我的想法更像是:

AsyncOperation1(string parm, Action<T> callback)
Run Code Online (Sandbox Code Playgroud)

每个客户都可以直接获得自己的结果.我无法弄清楚如何优雅地支持取消.我想显而易见的是AsyncOperation1返回某种可以传递给CancelAsync方法的令牌.我想了解更多关于.Net或其他可以正确翻译的语言中常见的其他异步模式的用法

.net asynchronous

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

在SSMS运行SQL中,如果不在语句之间返回行,则会产生错误

我使用SSMS v17.6与SQL Server Express v14.0.1000.169.

当我运行以下DELETE语句时:

delete from foo
go
Run Code Online (Sandbox Code Playgroud)

我收到错误:

'go'附近的语法不正确.

但是如果我执行类似的SELECT声明:

select * from foo 
go
Run Code Online (Sandbox Code Playgroud)

然后没有错误.

似乎错误发生在任何不返回结果的语句中.我已经检查了SSMS中的查询执行设置,批处理分隔符设置为go.SSMS似乎正在向服务器发送它不应该做的事情.

我在多台机器上看过这个.

sql-server ssms sql-server-2017-express

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