我有一个用于播放视频的 ActiveX COM 对象,它在 C# 应用程序中使用。它是这样声明的:
private AxVIDEOPLAYERUILib.AxVideoPlayerUI axVideoPlayerUI;
在我的代码中有这样的锁:
lock (axVideoPlayerUI)
{
axVideoPlayerUI.EnableControls = 1;
axVideoPlayerUI.Visible = true;
axVideoPlayerUI.ShowOverlay = 1;
axVideoPlayerUI.OverlayPosition = 3;
axVideoPlayerUI.Play();
}
但是我收到了我想摆脱的警告:
警告 1 CA2002:Microsoft.Reliability:“VideoPlayerControl.LoadRecording(RecordVideo, int)”锁定了“AxVideoPlayerUI”类型的引用。将其替换为针对具有强标识的对象的锁。
从这里的链接http://msdn.microsoft.com/en-us/library/ms182290.aspx它指出以下对象具有弱标识:
MarshalByRefObject、ExecutionEngineException、OutOfMemoryException、StackOverflowException、字符串、MemberInfo、ParameterInfo、线程。
但我的对象不属于这些类别中的任何一个。
我也尝试过将我的对象设为静态,如下所述:C# lock and code analysis warning CA2002但这给了我错误:
错误 1 无法使用实例引用访问成员“MyNameSpace.VideoPlayerControl.axVideoPlayerUI”;改为使用类型名称来限定它
有谁知道我怎样才能摆脱原来的警告?