我目前正在为一个更大的项目修复一些BestPractice-Warnings。我在某些情况下会调用表单,并且在做更多事情之前需要等待表单,这主要是一些对话框。为了等待表单,经常使用以下代码:
Object formRun;
//declare args and stuf...
formRun = classfactory.formRunClass(args);
formRun.init();
//call methods on formRun (display,run,etc...)
formRun.wait();
我现在面临的问题是'wait()'似乎已被弃用,我不知道如何替换或修复此问题。我已经看到一些开发人员将表单声明为“对象”以摆脱此警告(顺便说一下,它仍然无法工作),但这是一个后期绑定调用,也应避免。 ..
还有其他人遇到过这个问题吗?我尝试使用system.reflection
命名空间调用此方法,但这看起来不正确,并且在x ++中的代码也比执行此简单任务所需的代码多得多。
答案 0 :(得分:5)
TLDR
我认为这是从最佳实践检查中得出的错误肯定。要摆脱最佳实践警告,可以将它们添加到禁止的最佳实践列表中,也可以在代码中添加最佳实践禁止。
详细信息
在Deprecated APIs (June 2017)中表示wait
的{{1}}方法:
概述
用于阻止并等待交互/操作并通知 解除封锁。
弃用的原因
对于所有除formRun 以外的对象,这些调用已被弃用,并且 衍生产品。
迁移说明
允许从formRun或其派生类调用这些API。 应该删除从任何其他对象对这些API的调用。
当您为Object
做metadata search时,您还将获得很多结果(在8.0版上超过1000个)。这进一步表明code:"formRun.wait()"
不推荐使用此方法。
也就是说,您可能想看看下面的链接,其中提到可以向其中添加事件处理程序的FormRun
。到目前为止,我还没有亲自尝试过,但这可能适用于您的情况。