Tag: 回调

ASP.NET – Ajax.BeginForm OnSuccess使用params回调

我想在我的OnSuccess回调中添加更多参数( 但保留ajax上下文变量 )。 我做的是: using (Ajax.BeginForm(“Register”, new AjaxOptions() { OnSuccess = “new function(arg){HandleBasicForm(arg , ‘MyCustomVariable’)}”, … JSfunction: function HandleBasicForm(ajaxContext , myCustomVariable){ var content = ajaxContext.get_response().get_object(); …. } 但是ajaxContext为null。 我怎么做?

你是否必须为异步方法调用调用EndInvoke(或定义一个回调),即使你返回时没有任何事情要做

我在CodeProject上发现了以下代码片段,它在异步调用方法… http://www.codeproject.com/Articles/14931/Asynchronous-Method-Invocation private void CallFooWithOutAndRefParameters() { // create the paramets to pass to the function string strParam1 = “Param1”; int intValue = 100; ArrayList list = new ArrayList(); list.Add(“Item1”); // create the delegate DelegateWithOutAndRefParameters delFoo = new DelegateWithOutAndRefParameters(FooWithOutAndRefParameters); // call the beginInvoke function! IAsyncResult tag = delFoo.BeginInvoke(strParam1, out intValue, ref list, null, null); // normally […]

如何从C#主机应用程序执行Javascript回调函数

我正在C#中创建一个应用程序,它为大多数GUI提供自定义网页。 作为主持人,我想提供一个javascript API,以便嵌入式网页可以访问主机应用程序提供的一些服务。 我已经能够使用WebBrowser.ObjectForScripting属性和实现脚本类来获得这个工作的简单案例。 这适用于同步javascript调用。 但是,主机提供的一些操作是长时间运行的,并且我希望能够在操作完成时回调javascript。 这就是我遇到麻烦的地方。 使用Javascript: function onComplete( result ) { alert( result ); } function start() { window.external.LongRunningProcess( ‘data’, onComplete ); } C#: [ComVisible(true)] public class ScriptObject { public void LongRunningProcess( string data, callback ) { // do work, call the callback } } javascript中的’start’函数将整个过程踢掉。 我遇到的问题是,回调的类型是什么? 我该怎么称呼它来自C#? 如果我使用字符串类型进行回调,它会编译并运行,但是在LongRunningProcess方法中,回调实际上包含onComplete函数的全部内容(即’function onComplete(result){alert(result)}’) 如果我使用对象类型,它将作为COM对象返回。 使用Microsoft.VisualBasic.Information.TypeName方法,它返回’JScriptTypeInfo’。 但据我所知,这不是一个真正的类型,也没有通过所有MSDN真正提到它。 […]

WCF Windows服务 – 长时间操作/回调到调用模块

我有一个Windows服务,它取一堆文件的名称并对它们进行操作(zip / unzip,更新db等)。 操作可能需要一些时间,具体取决于发送到服务的文件的大小和数量。 (1)向此服务发送请求的模块将等待处理文件。 我想知道是否有一种方法可以在服务中提供一个回调,它将在完成处理文件时通知调用模块。 请注意,多个模块可以一次调用服务来处理文件,因此服务需要提供某种TaskId我猜。 (2)如果调用了一个服务方法并且正在运行另一个对同一服务的调用,那么该调用将如何处理(我认为只有一个与该服务相关联的线程)。 我已经看到,当服务在处理方法时花费时间时,与服务相关联的线程开始增加。

在其回调方法中停止计时器

我有一个System.Threading.Timer,它每10毫秒调用一次适当的事件处理程序(回调)。 该方法本身不可重入 ,有时可能超过10毫秒 。 因此,我想在方法执行期间停止计时器。 码: private Timer _creatorTimer; // BackgroundWorker’s work private void CreatorWork(object sender, DoWorkEventArgs e) { _creatorTimer = new Timer(CreatorLoop, null, 0, 10); // some other code that worker is doing while the timer is active // … // … } private void CreatorLoop(object state) { // Stop timer (prevent reentering) _creatorTimer.Change(Timeout.Infinite, […]

如何实现从非托管DLL到.net应用程序的回调接口?

在我的下一个项目中,我想为C ++中已有的代码实现GUI。 我的计划是将C ++部分包装在DLL中并在C#中实现GUI。 我的问题是我不知道如何实现从非托管DLL到manged C#代码的回调。 我已经在C#中做了一些开发,但是托管和非托管代码之间的接口对我来说是新的。 任何人都可以给我一些提示或阅读提示或一个简单的例子从一开始? 不幸的是,我找不到任何有用的东西。