什么是使主线程等到所有线程完成的最佳方法?
for(int i=0;i<n;i++){
Thread t=new Thread();
t.start();
}
//wait for all threads to finish
我知道dbunit已经在这里进行了讨论.我已经阅读了大部分内容,但我似乎无法找到解决问题的方法.
我已经设置了hibernate和spring.我正在做TDD所以我必须在编写代码之前连接一个正确的DAO测试框架.Dbunit浮现在脑海中,我必须设置它.这是ma testdataset.xml
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<table name="status">
<column>statusId</column>
<column>status</column>
<row>
<value>0</value>
<value>Available</value>
</row>
</table>
<table name="user">
<column>userId</column>
<column>firstName</column>
<column>lastName</column>
<column>username</column>
<column>password</column>
<column>email</column>
<row>
<value>0</value>
<value>system</value>
<value>admin</value>
<value>admin</value>
<value>admin</value>
<value>admin@ccbs.com</value>
</row>
</table>
<table name="reservation">
<column>reservationId</column>
<column>userId</column>
<column>reservationDate</column>
<column>startDate</column>
<column>endDate</column>
<column>statusId</column>
<row>
<value>0</value>
<value>0</value>
<value>2011-02-20 12:46:00.0</value>
<value>2011-03-01 12:00:00.0</value>
<value>2011-04-01 12:00:00.0</value>
<value>0</value>
</row>
</table>
</dataset>
Run Code Online (Sandbox Code Playgroud)
一切似乎都很好,直到我尝试使用加载数据集的基类连接一些代码.这是我的代码:
@Transactional
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:test-applicationContext.xml" })
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
public class BaseContextSensitiveTest {
@BeforeClass
public static void setUpDatabase() throws Exception { …Run Code Online (Sandbox Code Playgroud) 我很难尝试使用跨域请求创建jquery.form.我遇到了Firefox和Chrome的问题(甚至还没试过IE).
说明:我的整个站点位于http://www.mysite.com内.但是,我的联系表单位于另一台服务器上,由http://contact.mysite.com引用.我认为将它放在子域上会避开有关跨域请求的问题,但显然它没有.http://contact.mysite.com在Sinatra实施.
我的javascript设置没什么特别的.表单的操作指向http://contact.mysite.com,方法是POST:
<form id="contact" action="http://contact.mysite.com/" method="post">
Run Code Online (Sandbox Code Playgroud)
jquery.form配置了一个ajaxForm调用:
$(document).ready(function() {
$('#contact').ajaxForm({
success: function() { $('#success').fadeIn("slow"); },
error: function() { $('#error').fadeIn("slow"); }
});
});
Run Code Online (Sandbox Code Playgroud)
我遇到的第一个问题是使用Firefox 3.5 - 显然它会发送一个OPTIONS请求,期望来自服务器的特定答案.我用这个问题来配置我的Sinatra应用程序,因此它做了预期的事情(似乎更新版本的sinatra包含一个选项动词):
require 'rubygems'
require 'sinatra'
require 'pony'
# patch sinatra so it handles options requests - see https://stackoverflow.com/questions/4351904/sinatra-options-http-verb
configure do
class << Sinatra::Base
def options(path, opts={}, &block)
route 'OPTIONS', path, opts, &block
end
end
Sinatra::Delegator.delegate :options
end
# …Run Code Online (Sandbox Code Playgroud) 这个问题说明了一切,真的.我知道(Scala)Monad看起来像这样:
trait Monad[M[_]] {
def pure[A](a : A) : M[A]
def bind[A, B](ma : M[A], f : A => M[B]) : M[B]
}
Run Code Online (Sandbox Code Playgroud)
Monad Transformer是什么样的?它们用于什么?
比方说,我只是想用replicateM从Scalaz ;
scala> import scalaz._; import Scalaz._
import scalaz._
import Scalaz._
scala> some(4).replicateM[List](2)
res20: Option[List[Int]] = Some(List(4, 4))
Run Code Online (Sandbox Code Playgroud)
现在让我们说,而不是有一个Option[Int],我需要读取一个Int值File:
scala> val f = (_ : java.io.File) => some(1)
f: (java.io.File) => Option[Int] = <function1>
Run Code Online (Sandbox Code Playgroud)
所以,我可以对待这个读者,好像它是一个Monad?
scala> ReaderT(f).replicateM[List](2)
<console>:16: …Run Code Online (Sandbox Code Playgroud) 我正在使用FileHelpers库的2.0版,它被记录为能够处理.NET 2.0 Nullable类型.
我正在使用文档中示例中给出的代码:
[DelimitedRecord("|")]
public class Orders
{
public int OrderID;
public DateTime? OrderDate;
[FieldConverter(ConverterKind.Date, "ddMMyyyy")]
public DateTime? RequiredDate;
public int? ShipVia;
}
Run Code Online (Sandbox Code Playgroud)
使用FileHelperEngine,我可以成功读入一个没有OrderDate,RequiredDate或ShipVia字段值的文件.该文件看起来像:
1 |||
但是,我无法将生成的Orders []写出到文件中 - 库会抛出NullReferenceException,堆栈跟踪如下:
位于FileHelpers.Field上的FileHelpers.FieldBase.BaseFieldString(Object fieldValue)中的FileHelpers.FieldBase.AssignToString(StringBuilder sb,Object fieldValue)位于FileHelpers的FileHelpers.ConvertHelpers.CultureConverter.FieldToString(Object from) .RecordInfo.RecordToString(对象记录)在FileHelpers.FileHelperEngine 1.WriteStream(TextWriter writer, IEnumerable1记录,Int32 maxRecords)在FileHelpers.FileHelperEngine 1.WriteFile(String fileName, IEnumerable1记录,Int32 maxRecords)在FileHelpers.FileHelperEngine 1.WriteFile(String fileName, IEnumerable1记录)在TestingFileHelpers.Program.Main(String [] args)在C:位于System.AppDomain.ExecuteAssembly(String assemblyFile,Evidence assemblySecurity,String [] args)的System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,String [] args)中的\ dev\src\TestingFileHelpers\TestingFileHelpers\Program.cs:第19行System.Threading.ExecutionContext.Run上的System.Threading.ThreadHelper.ThreadStart_Context(Object state)中的.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()(Executi)System.Threading.ThreadHelper.ThreadStart()上的System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback回调,对象状态)中的onContext executionContext,ContextCallback回调,Object state,Boolean ignoreSyncCtx)
我敢肯定我必须在这里遗漏一些东西,但我无法弄清楚它是什么.任何帮助非常感谢.
我有一个MATLAB函数需要访问一些largeFile.mat的数据.如果(为了避免污染全局命名空间)我将load命令放在函数中,每次调用函数时MATLAB都会重新加载largeFile,还是它足够聪明以在调用之间缓存largeFile?例如
function hello()
load largeFile.mat;
display('hi');
end
for i=1:1000
hello();
end
Run Code Online (Sandbox Code Playgroud)
我应该将load命令保留在函数中,还是应该执行一次并将largeFile的数据作为arg传递?谢谢!
我有这样的界面:
public interface IFoo
{
int A {get;}
int B {get;}
}
Run Code Online (Sandbox Code Playgroud)
我有多个实现IFoo的类.
我想检查相等性,而不是基于ReferenceEquality,但是如果A和B都相同,那么两个IFoos应该被认为是相同的(实际上我正在检查通过WCF发送的Key-Value对的集合,这就是为什么我可以没有ReferenceEquality).
如果我有:
IFoo first = new FooBar1() { A = 1, B = 1};
IFoo second = new FooBar2() { A = 1, B = 1};
if (first == second) {
//this should return true
}
Run Code Online (Sandbox Code Playgroud)
目前IFoo是IEquatable<IFoo>,所以FooBar1和FooBar2重写Equals(IFoo other),但这不是在==上调用的内容.我正在搜索我的代码以替换a==b到a.Equals(b)任何地方,但这并不好.
我能做什么?
我正在尝试用ef4 ctp5实现存储库模式,我想出了一些东西,但我不是ef的专家,所以我想知道我做的是不是很好.
这是我的数据库上下文
public class Db : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和存储库:(简化)
public class Repo<T> : IRepo<T> where T : Entity, new()
{
private readonly DbContext context;
public Repo()
{
context = new Db();
}
public IEnumerable<T> GetAll()
{
return context.Set<T>().AsEnumerable();
}
public long Insert(T o)
{
context.Set<T>().Add(o);
context.SaveChanges();
return o.Id;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个方法,我用不同的参数调用8次.我用
AvailableYears.AsParallel()
.Select<Int32,DateUsedByThread>(x => GetDataForYearWorker(x,CIF))
.ToList();
Run Code Online (Sandbox Code Playgroud)
GetDataForYearWorker同步从Web服务获取响应.它在我的asp.net应用程序上使用非常少的计算能力,但是每个webservice响应都需要3-5秒.因为对web服务的调用是彼此独立的,所以我想同时进行所有操作.但看起来只有2个线程可以同时运行.为什么这样,我怎么能有8个线程同时工作?
经常声明在Python 2 中super应该避免使用.我super在Python 2中使用它发现它永远不会按照我的预期行事,除非我提供所有参数,例如:
super(ThisClass, self).some_func(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
在我看来,这违背了使用的目的super(),它既不简洁,也不比它更好TheBaseClass.some_func(self, *args, **kwargs).在大多数情况下,方法解析顺序是一个遥远的童话故事.
super要继续使用?c# ×3
java ×2
.net ×1
ajax ×1
asp.net ×1
caching ×1
cross-domain ×1
dbunit ×1
equality ×1
file-io ×1
filehelpers ×1
haskell ×1
hibernate ×1
iequatable ×1
interface ×1
javascript ×1
jquery ×1
matlab ×1
monads ×1
python ×1
python-2.x ×1
python-3.x ×1
repository ×1
scala ×1
scalaz ×1
spring ×1
super ×1