从我所读到的最佳实践是基于接口的类和松散地耦合对象,以帮助代码重用和单元测试.
这是正确的,是否应该始终遵循规则?
我问的原因是我最近在一个系统中使用了100个非常不同的对象.一些共享的公共接口,但大多数都没有,并想知道它是否应该有一个镜像镜像这些类中的每个属性和函数?
我正在使用C#和dot net 2.0,但我相信这个问题适合多种语言.
您认为获得线程工作结果的最佳方法是什么?想象一个线程做一些计算,你如何警告主程序计算完成?
对于一些名为"job finished"的公共变量,你可以每隔X毫秒轮询一次,或者顺便说一下,然后你会收到比它们可用时更晚的结果......主代码会浪费时间等待它们.另一方面,如果使用较低的X,CPU将浪费多次轮询.
那么,你怎么知道Thread或者一些Threads已经完成了他们的工作呢?
很抱歉,如果它看起来与其他问题类似,那可能是eben答案的原因,我想.我所测量的是运行大量线程并知道所有线程何时完成,而不进行轮询.
我更多地考虑使用批量线程在多个CPU之间共享CPU负载,并知道批处理何时完成.我想它可以用Future的对象完成,但是阻塞get方法看起来很像隐藏锁,而不是我喜欢的东西.
谢谢大家的支持.Althought我也喜欢通过回答埃里克森,我觉得SAUA的最完整的,和一个我会在自己的代码中使用.
我已经为web服务添加了代理到VS2008/.NET 3.5解决方案.构建客户端.NET时抛出此错误:
无法在ServiceModel客户端配置部分中找到引用合同"IMySOAPWebService"的默认端点元素.这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素.
搜索此错误告诉我在合同中使用完整的命名空间.这是我的带有完整命名空间的app.config:
<client>
<endpoint address="http://192.168.100.87:7001/soap/IMySOAPWebService"
binding="basicHttpBinding" bindingConfiguration="IMySOAPWebServicebinding"
contract="Fusion.DataExchange.Workflows.IMySOAPWebService" name="IMySOAPWebServicePort" />
</client>
Run Code Online (Sandbox Code Playgroud)
我正在运行XP本地(我之所以提到这是因为一些谷歌点击提到win2k3)app.config被复制到app.exe.config,所以这也不是问题.
有线索吗?
最近我需要从列表中加权随机选择元素,无论是否有替换.虽然有未知加权选择的众所周知和良好的算法,有些用于无替换的加权选择(例如修改算法),我找不到任何好的算法用于替换加权选择.我也想避免使用resevoir方法,因为我选择了列表中的一小部分,这个小部分足够小以容纳在内存中.
有没有人对这种情况下的最佳方法有任何建议?我有自己的解决方案,但我希望找到更高效,更简单或两者兼而有之的方法.
我知道我可以像这样更新一条记录 - 但是如何才能访问已更新的记录的id?(我正在使用MSSQL,所以我不能使用Oracles RowId)
update myTable
set myCol = 'foo'
where itemId in (select top 1 itemId from myTable )
Run Code Online (Sandbox Code Playgroud)
如果我正在使用插入,我可以使用getGeneratedKeys来获取id字段值,但我认为没有相应的更新?
我知道我可以使用可滚动的结果集来做我想要的
即
stmt = conn.prepareStatement("select top 1 myCol, itemId from myTable", ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet resultSet = stmt.executeQuery();
if(resultSet.first()){
resultSet.updateString(1, "foo");
resultSet.updateRow();
String theItemId = resultSet.getString(1)
}
resultSet.close();
Run Code Online (Sandbox Code Playgroud)
但我担心性能,因为测试显示负载下的锁定超时,我想知道是否有更好/更简单的方法?
- 编辑:刚刚完成这个问题......当我们迁移到MSSQL2005时,我们将升级我们的代码以使用Rich的答案.在当前版本中,我们使用了锁提示:(UPDLOCK ROWLOCK READPAST)来缓解原始代码显示的性能问题.
我想知道是否有办法生成有效的GUID/UUID,其中第一个(或任何部分)部分是用户选择的前缀.
即,GUID的格式为AAAAAAAA-BBBB-CCCC-DDDD-DDDDDDDDDDD,我想将任何部分设置为预定义值(理想情况下为AAA).目标是使GUID仍然是全局唯一的,但它们不需要加密安全.
我知道如何使用iPhone连接到Web服务器,但现在我必须将iPhone连接到Web服务.我不知道该怎么做,也没有在线提供的演示或课程.
有没有人有任何想法?
我有一个本地git存储库,它通过跟踪远程SVN存储库git svn.我已经在本地git存储库中做了一些更改,但是现在我想创建一个反映SVN HEAD的分支,以便对SVN中的代码进行一些更改,因为我不想传播我的git master到SVN的变化还没有.我怎么能这样做?
立即跟进:我需要对SVN HEAD进行更改并提交,然后将它们合并回我的git master.我该怎么做?我git merge将'svn-edits'分支转换成主人,还是做一个git svn rebase?
我正在尝试将u url作为参数传递给get方法.我定义了一个接受{*url}参数的路由,这样我就可以发送"/"字符而不分隔我的参数.只要url中有一个":"(例如http:或localhost:3857),该方法就不会被命中.
Html.ActionLink方法会转义它的参数本身,但它似乎没有转义':'.我无法手动转义它,因为转义字符会被同样的Html.Actionlink方法转义.
有任何想法吗?
是否可以将Hudson与MS Test 集成?
我正在使用Hudson在我的开发机器上设置一个较小的CI服务器,这样我就可以得到一些统计信息(即FxCop和编译器警告).当然,如果它可以运行我的单元测试并显示其输出也会很好.
到目前为止,我已将以下批处理任务添加到Hudson中,这使得它可以正确运行测试.
"%PROGRAMFILES%\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe" /runconfig:LocalTestRun.testrunconfig /testcontainer:Tests\bin\Debug\Tests.dll
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,Hudson不支持分析MS测试结果.有谁知道生成的TRX文件是否MSTest.exe可以转换为JUnit或NUnit结果格式(因为Hudson支持这些格式),或者是否有其他方法将MS Test单元测试与Hudson集成?
java ×2
.net-3.5 ×1
algorithm ×1
asp.net-mvc ×1
c# ×1
cocoa-touch ×1
endpoint ×1
git ×1
git-svn ×1
guid ×1
hudson ×1
interface ×1
iphone ×1
mstest ×1
objective-c ×1
oop ×1
python ×1
random ×1
sql-server ×1
unit-testing ×1
wcf ×1
wcf-binding ×1
web-services ×1