问题列表 - 第20654页

引用赋值是原子的,为什么需要Interlocked.Exchange(ref Object,Object)?

在我的多线程ASMX web服务,我有我自己的类型SystemData的类别字段_allData它由数List<T>Dictionary<T>标记为volatile.系统data(_allData)会偶尔刷新一次,我会通过创建另一个被调用的对象newData并用新数据填充它的数据结构来实现.当它完成后我就分配了

private static volatile SystemData _allData

public static bool LoadAllSystemData()
{
    SystemData newData = new SystemData();
    /* fill newData with up-to-date data*/
     ...
    _allData = newData.
} 
Run Code Online (Sandbox Code Playgroud)

这应该工作,因为赋值是原子的,并且具有对旧数据的引用的线程继续使用它,而其余的在分配之后具有新的系统数据.然而,我的同事说,volatile我应该使用,而不是使用关键字和简单的InterLocked.Exchange分配,因为他说在某些平台上,不能保证引用赋值是原子的.另外:当我宣布the _allData字段volatile

Interlocked.Exchange<SystemData>(ref _allData, newData); 
Run Code Online (Sandbox Code Playgroud)

产生警告"对易变场的引用不会被视为不稳定的"我应该怎么看待这个?

c# multithreading atomicity volatility

104
推荐指数
4
解决办法
3万
查看次数

正确分发VC++运行时文件的方法

我有一个MFC应用程序,我试图打包部署.它似乎取决于文件'msvcr90.dll','msvcp90.dll'和'mfc90.dll'.分发这些文件的正确方法是什么?

我无法使用合并模块,因为我的安装程序不支持它们.我知道我可以运行VCRedist_x86.exe,但出于各种原因我不想这样做.

据我所知,我唯一的选择是将文件安装为Private Side-by-Side程序集.它是否正确?

根据http://msdn.microsoft.com/en-us/library/ms235317(VS.80).aspx安装私有程序集的正确方法是复制'Microsoft.VC90.CRT'和'Microsoft.VC90 .MFC'文件夹与可执行文件位于同一文件夹中.这是解决问题的正确方法吗?它有效,但以这种方式复制系统文件似乎有点像.任何人都可以向我展示另一个应用程序(或至少是一个演示项目)的例子吗?

最后,我什么时候需要担心为我的应用程序分发.manifest文件?我应该显式安装XML文件,还是以某种方式嵌入我的可执行文件中?

c++ deployment assemblies runtime crt

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

使用a.vim for C++

有没有办法使用a.vim插件在.h,.cxx .txx文件之间切换?或者,您能提供其他解决方案吗?我们的想法是.h -> .txx -> .cxx在按键时自动切换.

非常感谢你们两位!

c++ vim plugins editor

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

Java实现财务随机指标

HY,

我正在寻找一个提供金融随机技术分析实施的API /库.

有人知道现成的解决方案吗?

谢谢,

java finance stochastic

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

是否可能Spring在两个地方自动装配原型范围的同类实例

**更改了示例以更好地表达情况

我使用的是2.5版弹簧并且有以下情况

@Component
@Scope("prototype") 
Class Foo
{
}

class A
{ 
  @Autowired 
  Foo fooA;
}


class B
{ 
  @Autowired 
  Foo fooB;
}



class C
{ 
  @Autowired 
  Foo fooC;
}
Run Code Online (Sandbox Code Playgroud)

我想了解是否有某种方式来使用@Autowired和绑定的同一个实例FOOfooA,并fooB同时结合不同的实例fooC

我明白,如果它的范围FOO将是singleton有效的

但是如果有一种方法可以在使用protoype示波器时达到相同的目标,我就会徘徊.

还请解释一下这是自动装配概念的正确用法吗?我试图滥用弹簧框架的目的

spring inversion-of-control autowired

4
推荐指数
2
解决办法
7254
查看次数

如何删除部分字符串?

如何修剪字符串的一部分,并使用PHP将其保存在MySQL的特定字符串中?

示例字符串: "REGISTER 11223344 here"

如何"11223344"从示例字符串中删除?

php string

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

相当于JVM的DLR?

是否有相当于JVM上的DLR(.NET的动态语言运行时)?我知道我可以继续实现自己的动态绑定并用Java发出自己的字节码.但是,是否有任何预先构建的框架(如DLR),所以我不必重新发明轮子?

java jvm

12
推荐指数
2
解决办法
873
查看次数

有没有办法检测Flash阻止程序?

我想知道是否有一种Javascript方式来检测用户是否安装了任何类型的闪存阻塞插件,这样我就可以正确地容纳这些用户.

例如,我使用'click to flash',但是使用SiFR渲染文本的网站上散布着"点击闪存"按钮,这非常烦人.因此我不在设计中使用SiFR.但是,如果我能够发现安装了闪存阻塞插件,我就不会调用SiFR功能.

有任何想法吗?

javascript flash plugins

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

滚动时保持SVG对象静态

在我的Web应用程序中,我正在生成一个SVG文件,其中包含一个"标题",当用户向下滚动图像时,我希望它保持在窗口顶部.

我可以想到两种方法来实现这一点,但我正在寻找任何其他明智的想法.我的两个想法是:

  • 生成两个单独的SVG,一个是"标题",一个是内容,然后只是将它们显示在两个不同的HTML <div>元素中,允许较低的SVG滚动.我不喜欢这个想法,因为我必须生成两个单独的文档.

  • 在SVG本身中使用ECMAScript并找到一种方法来浮动<g>页面顶部包含标题的方法.我喜欢这个,因为每当SVG被查看它应该工作,但我不知道如何实现这一点,并会欣赏任何指针或示例.

html javascript svg

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

简单委托(委托)与多播委托

我已经阅读了很多文章,但我仍然不清楚我们通常创建的普通代表和多播代理之间的区别.

public delegate void MyMethodHandler(object sender);
MyMethodHandler handler = new MyMethodHandler(Method1);
handler += Method2;
handler(someObject);
Run Code Online (Sandbox Code Playgroud)

上面的委托MyMethodHandler将调用这两个方法.现在多播代表的位置在哪里.我已经读过它们可以调用多种方法,但我担心我对代理的基本理解是不正确的.

.net c# delegates multicastdelegate

64
推荐指数
4
解决办法
5万
查看次数