标签: dispatch

我在哪里可以找到好的 D3 事件和调度示例?

我试图找到一些易于理解和使用的 D3 教程,这些教程特别关注如何实现和使用事件和调度函数。

有任何想法吗?

javascript events dispatch d3.js

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

带有继承的 C# 方法重载

我一直认为 C# 是通过查看方法调用接收者的运行时类型(即点之前的对象)来动态解析方法调用的。

但是,以下代码示例的工作方式不同。如果我在代码中使用 GenericSpaceShip,它会返回“Generic”;如果我使用 SpaceShip,它会返回“Specific”。请注意,这两种情况下的运行时类型都是 SpaceShip。

所以我的问题是:C# 如何解决 Visit 方法调用,为什么在这种情况下它查看编译时间而不是运行时类型?

请注意,这两个 Visit 方法具有不同的参数。正如 Patko 指出的那样,这意味着我不能在这里使用虚拟/覆盖。

class GenericSpaceShip
{
    public void Visit(GenericPlanet planet)
    {
        Console.WriteLine("Generic");
    }
}

class SpaceShip : GenericSpaceShip
{
    public void Visit(Planet planet)
    {
        Console.WriteLine("Specific");
    }
}

class GenericPlanet { }

class Planet : GenericPlanet { }

class Starter
{
    static void Main(string[] args)
    {
        // SpaceShip ship = new SpaceShip();
        GenericSpaceShip ship = new SpaceShip();
        Planet planet = new Planet();

        ship.Visit(planet); // => Generic …
Run Code Online (Sandbox Code Playgroud)

c# inheritance dispatch

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

Haskell TypeClass 的调度是动态的吗?

鉴于以下 Haskell 代码快照:

class Foo a where
   bar  :: a -> ...
   quux :: a -> ...
   ...
Run Code Online (Sandbox Code Playgroud)

a 的值是在运行时确定的 - 类根据这个值调度。

我假设编译器可以在编译时静态检查类型,并确保没有无效类型可以调度它。

现在,如果我们将其与 Java 中的动态调度进行比较:

interface Flippable {
  Flippable flip();
}

class Left implements Flippable {
  Right flip();
}

class Right implements Flippable {
  Left flip();
}

class Demo {
  public static void main(String args[]) {
    Flippable flippable = new Right();
    System.out.println(flippable.flip);
  }
}
Run Code Online (Sandbox Code Playgroud)

假设:

  • Haskell 可以根据返回类型以及多个参数进行调度,这使得调度与其他语言不同。

我的问题是:Haskell TypeClass 的调度是动态的吗?

static haskell dynamic typeclass dispatch

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

swift 3 中的 dispatch_semaphore_t

我正在使用以下代码objective C来处理信号量。

-(void)doSome{
    semaphore = dispatch_semaphore_create(0);

    BaseViewController *baseVC = [[BaseViewController alloc]init];
    if(baseVC.isUserObjectExist){
        [self callLoginWebService:baseVC.userObject.username passwordString:baseVC.userObject.password];
    }else{
        dispatch_semaphore_signal(semaphore);
    }

    while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW)) { //2
        [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:100]];
    }

}
Run Code Online (Sandbox Code Playgroud)

'dispatch_semaphore_t' 在 Swift 中不可用

如何在swift 3中集成信号量?

semaphore dispatch ios swift3

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

python中具有不同参数的函数调度

我有许多以下类型的记录,其属性值在字符串中

{
  "City": "Pune",
  "Temperature": "32",
  "Unit": "C",
  "Date": "22-11-2012"
}
Run Code Online (Sandbox Code Playgroud)

以及定义数据类型和其他属性的相关记录描述符

{
  "City": {
    "datatype": "string"
  },
  "Temperature": {
    "datatype": "double"
  },
  "Unit": {
    "datatype": "string"
  },
  "Date": {
    "datatype": "datetime",
    "dateformat": "%d-%m-%Y",
    "timezone": "UTC"
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要将记录属性值从字符串转换为记录描述符中提到的适当数据类型

我有一个函数调度字典

{
   "int" : string_to_int,
   "double": string_to_double,
   "bool": string_to_bool,
   "datetime": string_to_datetime
}

def string_to_int(value):
    <<convert to integer>>

def string_to_double(value):
    <<convert to double>>

def string_to_bool(value):
    <<convert to bool>>

def string_to_datetime(value, date_format, time_zone):
    <<convert to datetime>>
Run Code Online (Sandbox Code Playgroud)

通过循环遍历每个属性,如何在 python 中执行函数调度以将属性值转换为适当的数据类型?在循环中不使用任何 if..else 逻辑的情况下,为数据时间转换传递额外参数的正确方法是什么?

python dispatch

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

我怎么做朱莉娅的价值派遣?

我听说过朱莉娅已经发布了符号的值,而且我也使用了todo Val{:MySymbol}.

但这似乎不起作用:

julia> foo(x) = "other"
foo (generic function with 1 method)

julia> foo(x::Val{:zinger}) = "It was zinger"
foo (generic function with 2 methods)

julia> foo(:zinger)
"other"
Run Code Online (Sandbox Code Playgroud)

为什么不输出"它是zinger"?

symbols dispatch julia

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

在继续处理下一个请求或调度队列中的下一个 DispatchWorkItem 之前,如何等待接收来自 DispatchWorkItem 的响应

我有一组调度工作项,如何等到一项工作完成后再继续队列中的下一项工作?

func AsyncCalls(statusHandler: @escaping (String) -> Void){

    var dispatchWorkItems : [DispatchWorkItem] = []
    let categoryWorkItem = DispatchWorkItem {
        main {
        return  statusHandler("Loading categories ")
        }
        self.modelView.getCategories(completion: { data,error in
            main {
            if data.isEmpty {
            return  statusHandler("\(error )")
            }else{
            return  statusHandler("Done loading categories")
            }
            }
        })
    }

    let itemsWorkItem = DispatchWorkItem {
        main {
            return statusHandler("Loading Inventory ")
        }
        self.modelView.getInventory(completion: { data,error in
            main {
                if data.isEmpty {
                return  statusHandler("\(error )")
                }else{
                return  statusHandler("Done loading Inventory")
                }
            }
        })
    }


    dispatchWorkItems.append(categoryWorkItem) …
Run Code Online (Sandbox Code Playgroud)

dispatch grand-central-dispatch dispatch-async swift dispatch-queue

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

SIMPLE-READER-ERROR ,非法尖锐的宏字符,子字符 #\&lt; 没有为调度字符定义 #\#

在 David B. Lamkins 所著的《Successful Lisp》一书的第 4 章中,有一个简单的应用程序可以跟踪银行支票。

https://dept-info.labri.fr/~strandh/Teaching/MTP/Common/David-Lamkins/chapter04.html

最后,我们编写了一个宏来保存和恢复函数。当我执行 reader 函数并且要读取的值是哈希表时,就会出现问题。

保存和恢复功能的宏是:

(defmacro def-i/o (writer-name reader-name (&rest vars))
  (let ((file-name (gensym))
        (var (gensym))
        (stream (gensym)))
    `(progn
       (defun ,writer-name (,file-name)
         (with-open-file (,stream ,file-name
                                  :direction :output :if-exists :supersede)
           (dolist (,var (list ,@vars))
             (declare (special ,@vars))
             (print ,var ,stream))))
       (defun ,reader-name (,file-name)
         (with-open-file (,stream ,file-name
                                  :direction :input :if-does-not-exist :error)
           (dolist (,var ',vars)
             (set ,var (read ,stream)))))
       t)))
Run Code Online (Sandbox Code Playgroud)

这是我的哈希表以及发生了什么:

    (defvar *payees* (make-hash-table :test #'equal))

    (check-check 100.00 "Acme" "Rocket booster T-1000")

    CL-USER> *payees*
    #<HASH-TABLE …
Run Code Online (Sandbox Code Playgroud)

lisp macros hashtable common-lisp dispatch

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

如何停止Dispatch Queue

我正在使用Dispatch Queue加载图像,但如果我不希望它在某些时候加载所有图像,我不知道如何停止队列.

- (void) loadImageInBackgroundArr1:(NSMutableArray *)urlAndTagReference {
    myQueue1 = dispatch_queue_create("com.razeware.imagegrabber.bgqueue", NULL);        
    for (int seriesCount = 0; seriesCount <[seriesIDArr count]; seriesCount++) {
        for (int i = 0; i < [urlAndTagReference count]; i++) {
            dispatch_async(myQueue1, ^(void) {
                NSData *data0 = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:[urlAndTagReference objectAtIndex:i]]];
                UIImage *image = [[UIImage alloc]initWithData:data0];
                dispatch_sync(dispatch_get_main_queue(), ^(void) {

                for (UIView * view in [OD_ImagesScrollView subviews]) {

                    if ([view isKindOfClass:[UIView class]]) {

                        for (id btn in [view subviews]) {
                            if ([btn isKindOfClass:[UIButton class]]) {

                                                   UIButton *imagesBtn = (UIButton *)btn; …
Run Code Online (Sandbox Code Playgroud)

iphone multithreading dispatch grand-central-dispatch ios5

0
推荐指数
1
解决办法
3021
查看次数

app从后台线程修改autolayout引擎

我几乎完成了将我的iOS应用程序迁移到Swift 3.0.但我仍然有一些类似于下面的情况.其中大部分我都能通过将有问题的代码放在主线程上来解决.

在其他一些情况下,我无法弄清楚,我的代码的哪一部分正在错误的线程上执行.我收到这样的消息:

This application is modifying the autolayout engine from a background thread after the engine was accessed from the main thread. This can lead to engine corruption and weird crashes.
 Stack:(
    0   CoreFoundation                      0x000000018765a1d8 <redacted> + 148
    1   libobjc.A.dylib                     0x000000018609455c objc_exception_throw + 56
    2   CoreFoundation                      0x000000018765a108 <redacted> + 0
    3   Foundation                          0x0000000188241ea4 <redacted> + 192
    ....................
    16  libsystem_pthread.dylib             0x00000001866eece4 <redacted> + 200
    17  libsystem_pthread.dylib             0x00000001866ee378 pthread_mutex_lock + 0
    18  libsystem_pthread.dylib             0x00000001866edda4 start_wqthread + 4
)
Run Code Online (Sandbox Code Playgroud)

是否有一些特殊的技术(使用调试器时的选项或??)我可以用来跟踪progran所遵循的路径,看看这发生了什么?

multithreading dispatch task-queue ios swift

0
推荐指数
1
解决办法
1514
查看次数