标签: task

Ant scp任务无法正常工作,即使在ant/lib上使用jsch也是如此

我需要通过scp复制war文件.

我添加了jsch-0.1.42.jarto $ANT_HOME/lib但我仍然收到此错误:

原因:找不到类org.apache.tools.ant.taskdefs.optional.ssh.Scp.这看起来像Ant的可选组件之一.

这是ant -diagnostics以防万一运行的结果:

http://gist.github.com/320859

java ant scp build task

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

任务与流程,有什么区别吗?

我正在攻读我的CS专业的期末考试,主题是分布式系统和操作系统.

我需要对术语任务,进程和线程有一个很好的定义.到目前为止,我确信一个进程是使用自己的内存,程序计数器,寄存器,堆栈等(进程控制块)来表示运行(或挂起但已启动)的程序.进程可以运行共享内存的线程,因此与必须通过IPC进行通信的进程相比,可以通过共享内存进行通信.

但是任务和流程之间的区别是什么.我经常读到它们是可互换的,并且不再使用术语任务.这是真的吗?

multithreading computer-science process definition task

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

使用Parallel.ForEach得到不同的求和结果

我有一个foreach循环,我正在并行化,我注意到一些奇怪的东西.代码看起来像

double sum = 0.0;

Parallel.ForEach(myCollection, arg =>
{
     sum += ComplicatedFunction(arg);
});

// Use sum variable below
Run Code Online (Sandbox Code Playgroud)

当我使用常规foreach循环时,我会得到不同的结果.内部可能存在更深层次的内容,ComplicatedFunctionsum变量可能会受到并行化的意外影响?

c# parallel-processing task

18
推荐指数
3
解决办法
8025
查看次数

我是否应该注意到在.Net 4.0中使用任务与线程的区别?

我更新了我的代码以使用Tasks而不是线程....

看看内存使用情况和CPU我没有注意到多核PC的任何改进,这是预期的吗?

我的应用程序基本上在运行时启动不同对象中的线程/任务...

我所做的一切都很简单

Task a = new Task(...)
a.Start();
Run Code Online (Sandbox Code Playgroud)

c# multithreading .net-4.0 task

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

任务和异常沉默

为什么在任务中抛出的异常是静默异常,你永远不知道是否抛出了某个异常

try
{

 Task task = new Task(
  () => {
          throw null;
        }
        );
  task.Start();
 }
 catch
 {
  Console.WriteLine("Exception");
 }  
Run Code Online (Sandbox Code Playgroud)

程序在完全沉默中成功运行!线程的行为是不同的

try
{

 Thread thread = new Thread(
  () => {
          throw null;
        }
        );
  thread .Start();
 }
 catch
 {
  Console.WriteLine("Exception");
 }
Run Code Online (Sandbox Code Playgroud)

在这种情况下,将抛出空指针异常.有什么不同?

c# multithreading exception-handling task

18
推荐指数
2
解决办法
5289
查看次数

System.Threading.Task什么时候有用?

我广泛使用了大部分线程库.我非常熟悉创建新的Threads,创建BackgroundWorkers和使用内置的.NET ThreadPool(这些都非常酷).

但是,我从未找到使用Task类的理由.我看过可能有一两个人使用它们的例子,但是这些例子不是很清楚,并且没有给出为什么人们应该使用任务而不是新线程的高级概述.

问题1:从高级别开始,什么时候使用一个有用的任务而不是其他.NET并行方法?

问题2:是否有人有一个简单和/或中等难度的例子来演示如何使用任务?

c# parallel-processing multithreading task task-parallel-library

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

Gradle额外属性在子项目中定义的自定义任务中不可见

我正在尝试在多个Gradle任务中重用通用逻辑,类似于本答案中建议的,但是我遇到了额外的项目属性不可见的问题.

归结起来,这就是问题所在.假设我有一个根Gradle构建脚本,build.gradle它设置了一个额外的项目属性,

project.ext.myProp = 'myValue'
Run Code Online (Sandbox Code Playgroud)

我有一个子项目settings.gradle,

include 'subproject'
Run Code Online (Sandbox Code Playgroud)

子项目定义并使用引用该额外项目属性的自定义任务,

class CustomTask extends DefaultTask {
    CustomTask() {
        doFirst {
            println project.ext.myProp
        }
    }
}

task custom(type: CustomTask) {
    println 'custom task'
}
Run Code Online (Sandbox Code Playgroud)

执行这个给了我这个:

FAILURE: Build failed with an exception.
...
* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating project ':subproject'.
...
Caused by: org.gradle.api.tasks.TaskInstantiationException: Could not create task of type 'CustomTask'.
...
Caused by: groovy.lang.MissingPropertyException: cannot get property 'myProp' on extra properties extension as it …
Run Code Online (Sandbox Code Playgroud)

properties task gradle extra

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

在Java FX工作线程中不断更新UI

我有Label label我的FXML应用程序.

我希望这个标签每秒更换一次.目前我用这个:

        Task task = new Task<Void>() {
        @Override
        public Void call() throws Exception {
            int i = 0;
            while (true) {
                lbl_tokenValid.setText(""+i);
                i++;
                Thread.sleep(1000);
            }
        }
    };
    Thread th = new Thread(task);
    th.setDaemon(true);
    th.start();
Run Code Online (Sandbox Code Playgroud)

然而,什么也没发生.

我没有得到任何错误或例外.我不需要在主GUI线程中更改标签的值,所以我没有看到updateMessage或者updateProgress方法中的点.

怎么了?

java multithreading task javafx-2

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

正确的方法来实现返回Task <T>的方法

为简单起见,我们假设我们有一个方法应该在执行一些繁重的操作时返回一个对象.有两种实现方式:

public Task<object> Foo()
{
    return Task.Run(() =>
    {
        // some heavy synchronous stuff.

        return new object();
    }
}
Run Code Online (Sandbox Code Playgroud)

public async Task<object> Foo()
{
    return await Task.Run(() =>
    {
        // some heavy stuff
        return new object();
    }
}
Run Code Online (Sandbox Code Playgroud)

在检查生成的IL之后,生成了两个完全不同的东西:

.method public hidebysig 
    instance class [mscorlib]System.Threading.Tasks.Task`1<object> Foo () cil managed 
{
    // Method begins at RVA 0x2050
    // Code size 42 (0x2a)
    .maxstack 2
    .locals init (
        [0] class [mscorlib]System.Threading.Tasks.Task`1<object>
    )

    IL_0000: nop
    IL_0001: ldsfld class [mscorlib]System.Func`1<object> AsyncTest.Class1/'<>c'::'<>9__0_0'
    IL_0006: dup …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous task task-parallel-library async-await

18
推荐指数
2
解决办法
6119
查看次数

使用`async` lambda与`Task.Run()`冗余?

我刚刚遇到了一些代码:

var task = Task.Run(async () => { await Foo.StartAsync(); });
task.Wait();
Run Code Online (Sandbox Code Playgroud)

(不,我不知道其内部运作方式Foo.StartAsync()).我最初的反应是摆脱async/ await并重写为:

var task = Foo.StartAsync();
task.Wait();
Run Code Online (Sandbox Code Playgroud)

这是否正确(再一次,一无所知Foo.StartAsync()). 这个答案与它有什么不同 - 用Task.Run运行'异步'动作委托......似乎表明可能存在可能有意义的情况,但它也说"说实话,我没有"看到很多场景......"

.net c# asynchronous task

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