通过查看其他示例,我提出了以下内容,但它似乎没有按照我的意愿工作:我希望它只更新已修改的信息,如果QtyToRepair值已更新...但它不会那.
如果我注释掉了哪里,则在每种情况下都会更新修改后的信息.正如我所说的其他例子让我变得乐观.任何线索都表示赞赏.谢谢.
沃尔特
ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified]
ON [dbo].[SCHEDULE]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
UPDATE SCHEDULE SET modified = GETDATE()
, ModifiedUser = SUSER_NAME()
, ModifiedHost = HOST_NAME()
FROM SCHEDULE S
INNER JOIN Inserted I on S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber
WHERE S.QtyToRepair <> I.QtyToRepair
END
Run Code Online (Sandbox Code Playgroud) 在Eclipse中,如果我在Android项目中进行清理,则大小为30Mbytes,但是在Android Studio中,如果我进行清理,则清理后的大小为200Mbytes。
我还尝试从控制台进行清理,但它的重量仍然为100Mbytes。请注意,我不想使用控制台命令进行清理,而是想使用Android Studio进行清理。
如何在Android Studio中进行真正的清理,使项目大小达到30Mbytes?
这是Android Studio的官方文档,但我找不到解决方案:https : //developer.android.com/tools/studio/
我有一个扩展方法,如下所示:
//[MethodImpl(MethodImplOptions.NoOptimization)]
public static IEnumerable<char> TakeWhile(this BinaryReader reader, Func<int, bool> condition)
{
while (condition(reader.PeekChar()))
{
char c = reader.ReadChar();
yield return c;
}
}
Run Code Online (Sandbox Code Playgroud)
在使用BinaryReader解析文件时,我使用此方法来跳过空白字符块,以及其他内容.我发现JIT编译器正在优化它,当我这样调用它时:
// Skip white space
this.reader.TakeWhile(IsWhiteSpace);//.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
我已经尝试添加[MethodImpl(...)]属性来指示JIT编译器不优化方法,但它不起作用.现在显然我可以编写另一个实现这个操作底层流缓冲区位置的实现但出于好奇我想知道为什么会这样.
我发现阻止优化的唯一方法是使用IEnumerable结果(例如 - 通过调用上面评论的.FirstOrDefault())或将代码复制到调用方法中.我已经尝试使用MethodImplAttribute阻止调用方法的优化,但这不起作用.奇怪的是,优化在Debug构建下完全关闭,所以它不应该在任何情况下发生.有谁知道另一种阻止优化的方法?