问题列表 - 第17368页

ThreadLocals很难使用

我正在使用ThreadLocal变量(通过Clojure的变量,但以下内容对于ThreadLocalJava中的普通变量是相同的)并且经常遇到这样的问题:我无法确定某个代码路径是在同一个线程上还是在另一个线程.对于我控制下的代码,这显然不是一个大问题,但对于多态第三方代码,有时甚至没有办法静态地确定是否可以安全地假设单线程执行.

我倾向于认为这是ThreadLocals 的固有问题,但我想听听一些如何以安全的方式使用它们的建议.

java concurrency thread-local

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

let_ property方法的好奇心

每个.net开发人员都知道属性的概念.粗略的99.99%,它只是一个元数据粘合在一起的两个方法,一个吸气剂和一个设定器.

通常使用add,remove和invoke方法对事件也是如此.

ECMA-335描述了一种"其他"方法语义,适用于属性或事件.从概念上讲,财产或事件可能有多种"其他"方法.

今天是我用"其他"方法偶然发现房产的第一天.当然,它必须与COM有关.EnvDTE程序集中的EnvDTE.Property接口(用于向Visual Studio编写插件)包含一个定义如下的属性:

.property object Value()
{
  .custom instance void [mscorlib]System.Runtime.InteropServices.DispIdAttribute::.ctor(int32) = ( 01 00 00 00 00 00 00 00 ) 
  .get instance object EnvDTE.Property::get_Value()
  .other instance void EnvDTE.Property::let_Value(object)
  .set instance void EnvDTE.Property::set_Value(object)
}
Run Code Online (Sandbox Code Playgroud)

将let_Value定义为:

.method public hidebysig newslot specialname abstract virtual 
        instance void  let_Value([in] object  marshal( struct) lppvReturn) runtime managed internalcall
{
  .custom instance void [mscorlib]System.Runtime.InteropServices.DispIdAttribute::.ctor(int32) = ( 01 00 00 00 00 00 00 00 ) 
}
Run Code Online (Sandbox Code Playgroud)

显然,VB.NET之前的VBScript和VB版本可以使用Let关键字定义属性.并且Let与Set具有相同的签名.我觉得这里有关系.

但有没有人知道这个属性是如何用EnvDTE编写的语言声明的?我怎么能用相同的模式创建一个程序集(不使用ilasm,这太容易了)?还有人遇到类似的财产吗?

有没有人见过其他"其他"属性,可能与这个属性有不同的语义?如果是的话,他们习惯了什么?

.net cil

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

精心设计的Android应用程序的开源示例?

你能推荐一些开源的android应用程序,这些应用程序可以分析,并从中学习android编程吗?

Android开源项目中的任何应用程序是否适合基本学习?基本上,我正在寻找用于UI设计参考的Android应用程序源代码.

user-interface android open-source

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

为什么要使用负边际?

只是在这里查看一些CSS,我注意到:

.head{position:relative;overflow:hidden;margin:-30px 0 0 -25px;width:820px;padding:20px 25px 0 25px;background:url(/images/bkg.gif) 0 0 no-repeat;}
Run Code Online (Sandbox Code Playgroud)

你为什么要把-30和-25px的利润率?

css

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

Boost.MPI和Boost.Interprocess之间有什么区别?

我想Boost.MPI并且Boost.Interprocess不同,对吗?

从性能角度来看,哪个更快?有没有人做过基准测试?

我可以使用它们在同一进程中传递数据(即在不同的线程中)吗?

谢谢!

c++ boost

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

从模板函数调用的模板类的模板成员函数

这不编译:

template<class X> struct A {
   template<int I> void f() {}
};

template<class T> void g()
{
   A<T> a;
   a.f<3>();  // Compilation fails here (Line 18)
}

int main(int argc, char *argv[])
{
   g<int>();  // Line 23
}
Run Code Online (Sandbox Code Playgroud)

编译器(gcc)说:

hhh.cpp:在函数'void g()'中:

hhh.cpp:18:错误:')'令牌之前的预期primary-expression

hhh.cpp:在函数'void g()[with T = int]'中:

hhh.cpp:23:从这里实例化

hhh.cpp:18:错误:无效使用成员(你忘了'&'?)

谁能解释为什么会这样?有没有办法让它发挥作用?

c++ templates

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

你如何监控你的网络服务?

是否有任何工具可用于监视SOAP,基本的REST服务以及服务正常运行时间等,

web-services

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

关闭Oracle中的索引

为了优化SELECT查询,我使用和不使用索引运行它们并测量差异.我运行了一堆不同的类似查询,并尝试选择不同的数据,以确保缓存不会丢失结果.但是,在非常大的表上,索引需要很长时间才能创建,并且我对于哪些索引是合适的有几个不同的想法.

在Oracle(或任何其他数据库)中是否可以执行查询但是在执行查询时告诉数据库不使用某个索引?或者只是完全关闭索引,但是能够轻松地将其重新打开而无需重新索引整个表格?这样可以更容易测试,因为我可以创建我正在考虑的所有索引,然后尝试使用不同的查询.

或者,有没有更好的方法来优化大型表上的查询并知道哪些索引最适合创建?

oracle indexing optimization

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

我什么时候需要使用四元数?

我多年来一直在进行2D和3D操作,包括图形,并且从未使用过四元数,因此我对它们没有感觉.我知道它们可用于某些欧拉角难以操作的操作,也可用于找到最佳拟合一组坐标所需的旋转(X1,X2 ...... XN,X =(xyz))到另一个(X1',X2'...... XN').

是否存在四元数必不可少的地方?是否存在使解决方案更优雅或更高效的地方?

quaternions

20
推荐指数
2
解决办法
6578
查看次数

PRISM和Caliburn相结合

我已经在使用Prism,特别是以下几个方面:EventAggregator,RegionManager,命令,依赖注入(显然通过Unity)你是否将Prism与Caliburn结合使用?它为您提供了哪些好处?Caliburn如何与Silverlight的Navigation框架集成?你会建议同时使用这两个框架吗?(显然这取决于你的场景,我特别指的是一个LOB应用程序,有很多用户)

silverlight prism caliburn

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