小编Rya*_*rle的帖子

你应该如何使用shared_ptr返回*this?

另见:类似的问题

下面的代码显然很危险.问题是:你如何跟踪*this的引用?

using namespace boost;

// MyClass Definition
class MyClass {

public:
   shared_ptr< OtherClass > createOtherClass() {
      return shared_ptr< OtherClass > OtherClass( this ); // baaad
   }
   MyClass();
   ~MyClass();
};

// OtherClass Definition
class OtherClass {

public:
   OtherClass( const *MyClass myClass );
   ~OtherClass();
};

// Call; pMyClass refcount = 1
shared_ptr< MyClass > pMyClass( new MyClass() );

// Call; pMyClass refcount = 1 => dangerous
pMyClass->createOtherClass();
Run Code Online (Sandbox Code Playgroud)

我有答案(在下面发布),我只想让它在stackoverflow上(如果我错了,每个人都可以纠正我.)

c++ shared-ptr

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

防止同一服务器会话上的多个浏览器会话

我确信我们已经完成了所有工作,或者知道已经紧密绑定到服务器会话的Web应用程序(特别是在企业中).在这些情况下,如果打开多个浏览器会话并使用相同的服务器会话cookie,则会话可能会损坏.我们已经检查了所有选项,发现前进的最佳方法是阻止使用共享服务器会话cookie的多个浏览器会话.

当用户New Window - Ctrl+N在IE中执行或在其他浏览器中相当于"重复选项卡"时,这只是一个问题.基本上我们最终会有两个共享相同cookie的活动浏览器会话.

因此,为了阻止这种情况(因为它可能是无意的),我已着手制定某种警告系统来防止这种行为.现在,我们的代码进行了大量的并发检查以确保数据完整性,但仍然存在数据损坏问题.

在找到一般答案"不可能"后,我的解决方案是依靠AJAX发出"ping"并测量之间的时间.因此,我们有一个通用规则:我们以一定的间隔"ping",如果当前ping中最后一次ping之间的增量小于 ping持续时间,我们就知道在一个服务器会话中有多个活动的浏览器会话.

那么,Pfping频率在哪里; Pc是当前的ping; 并且Pl是最后一次ping,然后我们有一个错误Pf > (Pc - Pl).

           p1    p2    p3    p4
TAB1 0-----|-----|-----|-----|---...
                 :     :     :
                 :  p1 :  p2 :  p3    p4
TAB2          0-----|-----|-----|-----|---...
     ^     ^     ^  ^  ^  ^  ^  ^
                  Deltas
----+---+------------
TAB | P |   Delta (Pc - Pl)
----+---+------------                 
 1  | 1 |   5
 1  | 2 |   5
 2  | 1 |   2.5 -Error
 1  | …

language-agnostic session

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

Java 5中动态编译的选项

除了Janino之外,还有其他选项可以在v5中实时编译和执行Java代码吗?我知道v6有Compiler API,但我需要使用v5 VM.

我基本上需要获取一个包含完整Java类的字符串,编译它并将其加载到内存中.

java compiler-construction dynamic-compilation janino

5
推荐指数
2
解决办法
1828
查看次数

如何使用C#中的键对NameValueCollection进行排序?

我写了下面的代码,它也有效 - 但我想知道它们是否比这更好:

 NameValueCollection optionInfoList = ..... ;
 if (aSorting)
            {
                optionInfoListSorted = new nameValueCollection();        
                String[] sortedKeys = optionInfoList.AllKeys; 
                Array.Sort(sortedKeys);
                foreach (String key in sortedKeys)
                    optionInfoListSorted.Add(key, optionInfoList[key]);

                return optionInfoListSorted;
            }
Run Code Online (Sandbox Code Playgroud)

c# sorting collections

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

如何在C#中读取XML属性?

我有几个XML文件,我希望从中读取属性.我的主要目标是将语法突出显示应用于富文本框.

例如,在我的一个XML文档中,我有:<Keyword name="using">[..]所有文件都具有相同的元素:Keyword.

那么,我如何获取属性的值name并将它们放在每个XML文件的字符串集合中.

我正在使用Visual C#2008.

c# xml

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

.NET基于Web的对象浏览器/检查器

我有一个相当复杂的缓存系统用于Web应用程序.我想通过应用程序的管理控制台公开缓存对象的查看器.

基本上,我正在寻找像调试时可用的Visual Studio对象检查器之类的东西.

我当然可以写一些东西,事实上,我有一个使用树控件的工作原型.我正在寻找一些更复杂的东西,我没有必要维护:)示例调试视图

c# debugging inspector

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

如何开始创建多线程负载均衡器?

我有一个有趣的练习可以从我的教授那里解决.但我需要一些帮助,所以在假期期间不会变得无聊.

演习是为了

  • 创建一个多线程负载平衡器,每秒从5个传感器读取1个测量点.(因此每秒5个值).
  • 然后使用这些值进行一些"复杂"计算.
  • 在屏幕上打印计算结果.(如传感器1-5的最大值或平均值等,当然是多线程的)
  • 作为一项额外任务,我还必须确保如果将来例如每秒钟读取500个传感器,计算机就不会退出工作.(负载平衡).

我有一个csv文本文件,包含5个虚拟传感器的约400个测量点.

我认为我必须做的事情:

  1. 将测量点读入阵列
  2. 确保线程安全访问该阵列
  3. 为计算某些数学内容的每个值生成一个新线程
  4. 为最大并发工作线程设置最大值

我是c#中多​​线程应用程序的新手,但我认为使用threadpool是正确的方法.我目前正在编写一个队列,可能在任务中启动它,因此它不会阻止应用程序.

你会推荐什么?

c# multithreading load-balancing

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

我可以使用立体声信号在频域中获得更高的分辨率吗?

背景

我承认,这个问题源于对数字信号处理所涉及的基础数学的最终缺乏深刻理解; 我还在学习.

我想采取一组幅度样本,比如1024(单通道),并将它们带入频域.显然这需要FFT; 没问题.问题是这只能给出高达奈奎斯特频率或1024/2的频率.

如果我有立体声信号,我可以合并信号以产生2048幅度样本,从而返回1024个频率值吗?我希望在频域中获得更高的分辨率.

那么,这可以做到返回有意义的频率数据吗?有没有其他方法可以采用立体声信号并在频域中以更高的分辨率结束?

我到目前为止所发现的

我看到一篇文章建议采用左信号并使其成为真实值和正确信号,并使其成为FFT复数值的虚数值.这对我来说没有意义,也许是因为我不懂数学.我确实尝试过,它似乎工作,但我有信号泄漏.所以我应用了Hanning窗口,但是在处理之后只产生了512个可用值.

language-agnostic audio signal-processing

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

Visual Studio 2010看起来"放大"

今天,我在一台全新的Windows 7 Ultimate 64位安装的新笔记本电脑上安装了Visual Studio 2010 Professional.我已经习惯了Visual Studio 2010的外观,立即发现了一些错误.从某种程度上看,Visual Studio应用程序似乎是"放大"的.文本要大得多(即使它表示缩放级别为100%,文本大小为10,这与我以前使用的相同),通常情况下,其他窗口也是如此,如解决方案资源管理器和输出安慰.图标和图像的质量也很差.

这是两个比较图像(我不允许发布图像,所以有些链接必须这样做):

这是我以前的样子.我在窗口看到很多文字,图标很好.

http://i51.tinypic.com/2mq8dau.png

当我在我的新笔记本电脑上安装VS2010时,这就是我的问候.图标看起来很紧张,我可以在窗口中放入更少的代码.

http://i56.tinypic.com/35k0fo4.png

我的旧电脑屏幕分辨率为1920x1200,新电脑的分辨率为1920x1080.(我将旧计算机上的VS窗口调整为大约1920x1080以显示差异).

看起来我的图像主机也调整了图像大小,但你仍然可以看到差异.

有没有人有同样的问题?我希望它只是一些视觉设置.如果遗漏任何内容,我将很乐意提供更多信息.

提前致谢.

dpi visual-studio-2010

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

Visual Studio 2005无法在发布配置模式下编译

摘要:如何在发布模式下编译...我无法让它"接受"我想要做的事情.

我在VS2005 C#中有一个web服务项目,我正在尝试优化.我提出的意识之一是建议在发布模式下编译.我不确定在这里会发生什么,但这是我所看到的:

我右键单击项目并选择Properties然后选择Build选项卡我单击Configuration下拉框,设置为RELEASE并注意Output Path是\ bin我单击项目上的REBUILD并且DLL进入\ bin\debug文件夹(不是\ BIN)!这是从编译的输出窗口粘贴的片段(注意它将配置显示为"Debug Any CPU"以及稍后/ define:DEBUG; TRACE):

------ Rebuild All started: Project: TRIMBrokerService, Configuration: Debug Any CPU ------
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:DEBUG;TRACE 
/reference:"C:\Program Files\Microsoft WSE\v3.0\Microsoft.Web.Services3.dll" /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Configuration.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll 
/reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.Mobile.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /reference:..\TRIMBrokerUtilities\TRIMBrokerUtil\bin\Debug\TRIMBrokerUtil.dll 
/debug+ /debug:full /optimize- /out:obj\Debug\TRIMBrokerService.dll /target:library FaultCode.cs FileService.asmx.cs Properties\AssemblyInfo.cs Properties\Settings.Designer.cs Settings.cs "Web References\ASMXwsTrim\Reference.cs"

Compile complete -- 0 errors, 0 warnings
TRIMBrokerService -> C:\Documents and Settings\johna\My Documents\Visual Studio 2005\Projects\WSE\TRIMBrokerPassingByteArray\TRIMBroker\TRIMBrokerService\bin\debug\TRIMBrokerService.dll
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

我注意到我可以与Build选项卡对话框进行交互,当我将Configuration下拉列表框更改为Active(Debug)或只是Debug时,输出路径将更改为\ …

asp.net configuration visual-studio-2005 compilation

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