本文整理汇总了C#中IMethod.WriteInterlockedFunction方法的典型用法代码示例。如果您正苦于以下问题:C# IMethod.WriteInterlockedFunction方法的具体用法?C# IMethod.WriteInterlockedFunction怎么用?C# IMethod.WriteInterlockedFunction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMethod
的用法示例。
在下文中一共展示了IMethod.WriteInterlockedFunction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessPluggableMethodCall
/// <summary>
/// </summary>
/// <param name="llvmWriter">
/// </param>
/// <param name="opCodeMethodInfo">
/// </param>
/// <param name="methodInfo">
/// </param>
/// <returns>
/// </returns>
public static bool ProcessPluggableMethodCall(
this LlvmWriter llvmWriter,
OpCodePart opCodeMethodInfo,
IMethod methodInfo)
{
if (methodInfo.HasProceduralBody)
{
var customAction = methodInfo as IMethodBodyCustomAction;
if (customAction != null)
{
customAction.Execute(llvmWriter, opCodeMethodInfo);
}
return true;
}
// TODO: it seems, you can preprocess MSIL code and replace all functions with MSIL code blocks to stop writing the code manually.
// for example call System.Activator.CreateInstance<X>() can be replace with "Code.NewObj x"
// the same interlocked functions and the same for TypeOf operators
if (methodInfo.IsTypeOfCallFunction() && opCodeMethodInfo.WriteTypeOfFunction(llvmWriter))
{
return true;
}
if (methodInfo.IsInterlockedFunction())
{
methodInfo.WriteInterlockedFunction(opCodeMethodInfo, llvmWriter);
return true;
}
if (methodInfo.IsThreadingFunction())
{
methodInfo.WriteThreadingFunction(opCodeMethodInfo, llvmWriter);
return true;
}
if (methodInfo.IsActivatorFunction())
{
methodInfo.WriteActivatorFunction(opCodeMethodInfo, llvmWriter);
return true;
}
return false;
}