コード例 #1
0
 public static IDisposable DoWithOpenDoc(this SldWorks swApp, Func <IModelDoc2, IDisposable> action)
 {
     return(swApp.DocOpenObservable()
            .SelectMany(doc =>
     {
         var disposable = action(doc);
         return doc
         .DestroyNotify2Observable()
         .FirstAsync()
         .Select(_ => disposable);
     })
            .Subscribe(disposable => disposable.Dispose()));
 }
コード例 #2
0
        public static IDisposable DoWithOpenDoc(this SldWorks swApp, Func <IModelDoc2, IDisposable> action)
        {
            var d = new CompositeDisposable();

            swApp.DocOpenObservable()
            .SelectDisposable(d, action, (doc, disposable) => doc
                              .DestroyNotify2Observable()
                              .FirstAsync()
                              .Select(_ => disposable)
                              )
            .SelectMany(p => p)
            .Subscribe(disposable => disposable.Dispose())
            .DisposeWith(d);
            return(d);
        }