只是一个想法.
在C#中使用可选类型参数不是很有用吗?
这会让生活更简单.我厌倦了多个具有相同名称但类型参数不同的类.另外VS不支持这个非常vell(文件名):-)
例如,这将消除对非通用IEnumerable的需求:
interface IEnumerable<out T=object>{
IEnumerator<T> GetEnumerator()
}
Run Code Online (Sandbox Code Playgroud)
你怎么看?
在这个关于期货,承诺和打包任务的优秀教程之后,我达到了我想要准备自己的任务的地步
#include <iostream>
#include <future>
using namespace std;
int ackermann(int m, int n) { // might take a while
if(m==0) return n+1;
if(n==0) return ackermann(m-1,1);
return ackermann(m-1, ackermann(m, n-1));
}
int main () {
packaged_task<int(int,int)> task1 { &ackermann, 3, 11 }; // <- error
auto f1 = task1.get_future();
thread th1 { move(task1) }; // call
cout << " ack(3,11):" << f1.get() << endl;
th1.join();
}
Run Code Online (Sandbox Code Playgroud)
至于我可以解密gcc-4.7.0错误消息,它期望参数不同吗?但是怎么样?我尝试缩短错误消息:
error: no matching function for …Run Code Online (Sandbox Code Playgroud) 如果我有一个对象,我该如何确定它的类型?(是否存在与Java instanceof运算符等效的OCaml ?)
我最近一直在使用网络应用程序,主要是使用javascript和json丰富的Web UI.我不得不说,通过这些技术,我可以一直留下深刻的印象.
我越来越多地问自己,我是否更喜欢使用经典的GUI来开始(无论是C#/ VB.Net + WinForms,还是C/C++ + GTK/QT或Java或其他任何东西).然而,我已经能够在与网络相关技术的用户界面方面完成我想要的一切.
虽然我觉得我拥有我需要的一切,但是越来越多的东西不断涌现(并将继续永远存在),如HTML5,新的javascript功能,甚至更多的东西.
因此,随着网络应用变得越来越强大,我问你:
我想知道W3有什么说法,尽管我还没有调查过.
我试图使用分而治之(aka fork/join)方法来解决数字运算问题.这是代码:
import scala.actors.Futures.future
private def compute( input: Input ):Result = {
if( pairs.size < SIZE_LIMIT ) {
computeSequential()
} else {
val (input1,input2) = input.split
val f1 = future( compute(input1) )
val f2 = future( compute(input2) )
val result1 = f1()
val result2 = f2()
merge(result1,result2)
}
}
Run Code Online (Sandbox Code Playgroud)
它运行(具有良好的加速)但未来的apply方法似乎阻塞了一个线程,并且线程池大大增加.并且当创建太多线程时,计算被卡住.
是否存在一种释放线程的期货反应方法?或任何其他方式来实现这种行为?
编辑:我使用scala 2.8.0.final
是否有任何网站/博客(可能是由F#团队成员?)定期讨论/揭示有关F#未来的想法?
我知道一些团队成员的博客,但我找不到包含此类内容的博客.
在C#代码中,如何检查给定方法是否可以由特定委托类型表示?
我首先根据我的类型知识尝试了一些东西:
// The delegate to test against.
void TargetDelegate(string msg);
// and...
var methodInfo = Type.GetMethod(..); // obtain the MethodInfo instance.
// try to test it
typeof(TargetDelegate).IsAssignableFrom(methodInfo.GetType());
Run Code Online (Sandbox Code Playgroud)
但这只涉及类型而不是方法 - 它总是错误的.
我倾向于相信答案在于DelegateType,但我现在只是在FCL四处游荡.任何帮助,将不胜感激.
有没有人知道MVC框架或任何框架是一个很好的开始使用Io(编程语言).
我想管理由TaskExecutor返回的Futures对象列表.
我有这样的事情
List<Future<String>> list
void process(ProcessThis processThis) {
for ( ...) {
Future<String> future = taskExecutor.submit(processThis);
list.add(future)
}
}
void removeFutures() {
for(Future future : list) {
assert future.cancel(true);
}
Run Code Online (Sandbox Code Playgroud)
ProcessThis是一个实现Callable <String>并检查Thread.interrupted()状态的任务
public String call() {
while (true) {
if (Thread.interrupted()) {
break;
}
doSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,当调用Thread.interrupted()时,只有并发线程的子集返回'true'.
removeFutures()中的断言为每个被删除的未来返回true(我也检查了isDone()和isCompleted().
被中断的线程数是随机的.超过15个运行线程有时13个被中断,有时2个... .
我真的不明白的地方是个问题.如果我叫future.cancel(真),并返回true ...然后我检查Thread.interrupted(这被称为只有一次),我希望这回也是如此.
我错过了什么你知道吗?
我在构建Java 1.6.0_02-B05
我尝试使用提升线程期货.如图所示,我们可以从打包任务中获得共享的未来.
所以我在linux上尝试这样的功能:
template <class task_return_t>
void pool_item( boost::shared_ptr< boost::packaged_task<task_return_t> > pt)
{
boost::shared_future<task_return_t> fi= pt->get_future(); // error
//...
Run Code Online (Sandbox Code Playgroud)
但我收到错误称:
../../src/cf-util/thread_pool.h: In member function ‘void thread_pool::pool_item(boost::shared_ptr<boost::packaged_task<R> >) [with task_return_t = void]’:
../../src/cf-util/thread_pool.h:64:3: instantiated from ‘void thread_pool::post(boost::shared_ptr<boost::packaged_task<R> >) [with task_return_t = void]’
../../src/cf-server/server.cpp:39:27: instantiated from here
../../src/cf-util/thread_pool.h:124:58: error: conversion from ‘boost::unique_future<void>’ to non-scalar type ‘boost::shared_future<void>’ requested
Run Code Online (Sandbox Code Playgroud)
我之前没有接受任何期货.所有的源代码,地方,我从打电话,那是被称为我的线程池.在Visual Studio 2010下的Windows上,它可以完美地编译和工作.
我该怎么办?如何修复或解决此错误?
future ×4
c# ×2
c++ ×2
typechecking ×2
.net ×1
actor ×1
boost ×1
boost-thread ×1
c++11 ×1
delegates ×1
f# ×1
frameworks ×1
generics ×1
html ×1
instanceof ×1
interrupt ×1
iolanguage ×1
java ×1
javascript ×1
object ×1
ocaml ×1
scala ×1
threadpool ×1