小编Nav*_*rma的帖子

此表达式应具有 Async<'a> 类型,但此处具有类型 DispatcherOperation

我正在构建一个包含 F# 文件的项目,在构建过程中,第 39 行出现错误:

此表达式应具有 Async<'a> 类型,但此处具有类型 DispatcherOperation

open System
open System.Collections.Generic
open System.Collections.ObjectModel
open System.Linq
open System.Net
open System.Reactive.Disposables
open System.Runtime.CompilerServices
open System.Threading
open System.Windows
open System.Windows.Threading

open Microsoft.Practices.Unity

type IActivityContext<'TResult> = interface
    abstract container: IUnityContainer
    abstract Success: result:'TResult -> unit
    abstract Error: error:Exception -> unit
    abstract Cancel: unit -> unit
    abstract RegisterCancellationCallback: callback:Action->IDisposable
end

[<Extension>]
type ActivityExtensions private() = class
    [<Extension>]
    static member StartViewActivity<'TResult>(container: IUnityContainer, callback: Action<IActivityContext<'TResult>>)= async{
        let! ct = Async.CancellationToken
        return! Async.FromContinuations(fun (success, error, cancel) …
Run Code Online (Sandbox Code Playgroud)

f# async-await

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

将对象声明为public然后在F#中本地使用它

我对F#了解不多,但我正在研究一个项目(在C#上),我必须在预编写的F#代码中进行一些更改.

我想声明一个公共对象然后在本地使用这个对象.(就像我们在C#中所做的那样).

class abc
{
   public SubscriptionManager subman = null;  // object of class SubscriptionManager

   public void DoSomething()
   {
      subman = new SubscriptionManager();
   }
}
Run Code Online (Sandbox Code Playgroud)

像这样的东西.

我可以在F#中做同样的事情吗?

f#

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

无法在ONVIF中实现事件订阅

我正在使用 Onvif 设备管理器 dll( onvif.services、discovery、session 和 utils.async、common、diagnostic、fsharp dll )实现 ONVIF。

到目前为止,我能够发现 onvif 设备,获取范围(设备信息)及其配置文件,以流式传输视频并实现 ptz 控制。

现在我正在实现事件订阅,但我无法订阅任何特定事件。

这是我的事件订阅代码。我不知道下一步该做什么。

OnvifParam deviceparam = ONVIFDevices[listBox1.SelectedIndex];
deviceparam.Account = new NetworkCredential { UserName = "admin", Password = "admin" };
var sessionFactory = new NvtSessionFactory(deviceparam.Account);

int listenport = 8085;
string EventListeningPort = null;
int.TryParse(EventListeningPort, out listenport);
Uri uri = new Uri(deviceparam.Uris[0].ToString());
deviceparam.URL = uri.ToString();
Profile[] profiles = null;
var f = sessionFactory.CreateSession(uri);
profiles = f.GetProfiles().RunSynchronously();
deviceparam.Profiles = profiles;

OdmSession o = new OdmSession(f);

var subs = o.GetBaseEvents(listenport).Subscribe(); …
Run Code Online (Sandbox Code Playgroud)

c# camera onvif

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

标签 统计

f# ×2

async-await ×1

c# ×1

camera ×1

onvif ×1