本文整理汇总了C#中Effect.GetHashCode方法的典型用法代码示例。如果您正苦于以下问题:C# Effect.GetHashCode方法的具体用法?C# Effect.GetHashCode怎么用?C# Effect.GetHashCode使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Effect
的用法示例。
在下文中一共展示了Effect.GetHashCode方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: _cRoll_EffectIsOffScreen
void _cRoll_EffectIsOffScreen(Effect cContainer, Effect cEffect)
{
try
{
if (null != cEffect && null != cEffect.oTag)
{
SMS cSMS = null;
if (cEffect.oTag is SMS)
{
cSMS = (SMS)cEffect.oTag;
lock (_aqMessageIDsDisplayed)
{
(new Logger()).WriteDebug3("SMS displayed: " + cSMS.ID);
_aqMessageIDsDisplayed.Enqueue(cSMS.ID);
cSMS.Dispose();
}
if (SMS.Type.Photo == cSMS.eType && null != OnPhotoHide)
OnPhotoHide();
}
if (cEffect is Composite)
{
Composite cC = (Composite)cEffect;
if (cC.eStatus == EffectStatus.Running)
cC.Stop();
cC.Dispose();
(new Logger()).WriteDebug3("composite disposing: " + cEffect.GetHashCode());
}
}
}
catch (Exception ex) // замена пустого кетча
{
(new Logger()).WriteError(ex);
}
}
示例2: EventSend
static public void EventSend(EventDelegate dEvent, Effect cSender, Effect cEffect)
{
(new Logger()).WriteDebug3("in [hc = " + cEffect.GetHashCode() + "]");
_aqEvents.Enqueue(new Tuple<EventDelegate, Effect, Effect>(dEvent, cSender, cEffect));
}
示例3: OnEffectStopped
virtual protected void OnEffectStopped(Effect cSender)
{
(new Logger()).WriteDebug3("in [hc = " + cSender.GetHashCode() + "][" + (null == EffectStopped ? "null" : "ok") + "]");
if (null != EffectStopped)
EventSend(EffectStopped, this, cSender);
}
示例4: Skip
public bool Skip(bool bLast, ushort nNewTransDur, Effect cEffect, ushort nDelay)
{
/*вот такие у нас случаи тут могут быть:
* 1. нам НЕ дали эффект
* 1.1 у нас есть текущий эффект (в _aItemsOnAir)
* 1.2 у нас нет текущего эффекта (в _aItemsOnAir), но есть эффект в очереди (в _aItemsQueue), т.е. пропускаем ближайший
* 1.3 у нас нет эффектов вообще (ни в _aItemsOnAir, ни в _aItemsQueue)
* 2. нам дали эффект
* 2.1 и он лежит в _aItemsOnAir, а значит текущий
* 2.2 и он лежит в _aItemsQueue
* 2.3 у нас нет такого эффекта вообще (ни в _aItemsOnAir, ни в _aItemsQueue)
*/
(new Logger()).WriteDebug("playlist:skipping in [l:" + bLast + "][t:" + nNewTransDur + "][a.c:" + _aItemsOnAir.Count + "][q.c:" + _aItemsQueue.Count + "][pl:" + GetHashCode() + "][ef:" + (null == cEffect ? "NULL" : cEffect.GetHashCode().ToString()) + "][ef_frames:" + (null == cEffect ? "" : cEffect.nFramesTotal.ToString()) + "]");
Dictionary<IEffect, ContainerAction> aCAs = new Dictionary<IEffect, ContainerAction>();
bool bCurrent = false;
Item cItem;
lock (_aItemsQueue)
{
lock (_aItemsOnAir)
{
(new Logger()).WriteDebug2("locking _aItemsQueue in Skip");
if (null == cEffect)
{ //случаи 1.*
if (null == (cItem = _aItemsOnAir.FirstOrDefault(o => o.bIsActive && o.iEffect.eType != EffectType.Transition)))
{
if(1 > _aItemsQueue.Count)
{ //случай 1.3
(new Logger()).WriteDebug2("playlist:skipping out because pl is empty [false][p.h:" + GetHashCode() + "][e.h:NULL]");
return false;
}
//случай 1.2
cItem = _aItemsQueue[0];
}
else //случай 1.1
bCurrent = true;
cEffect = (Effect)cItem.iEffect;
}
else
{
if (null == (cItem = _aItemsOnAir.FirstOrDefault(o => o.iEffect == cEffect)))
{
if (null == (cItem = _aItemsQueue.FirstOrDefault(o => o.iEffect == cEffect)))
{ //случай 2.3
(new Logger()).WriteDebug2("playlist:skipping out because no such effect in pl [false][p.h:" + GetHashCode() + "][e.h:" + cEffect.GetHashCode() + "]");
return false;
}
//случай 2.2
}
else //случай 2.1
bCurrent = true;
}
if (!bLast && (1 > _aItemsQueue.Count || (2 > _aItemsQueue.Count && 2 > _aItemsOnAir.Count))) //тут я подразумеваю, что в _aItemsOnAir ВСЕГДА есть транзишн... если это не так, нужно переписывать условие// v да! он всегда есть!
{
(new Logger()).WriteDebug2("playlist:skipping out [false][p.h:" + GetHashCode() + "][e.h:" + cEffect.GetHashCode() + "]");
return false;
}
if (!bCurrent || !SkipCurrent(nNewTransDur, nDelay))
{ //либо случаи 1.1 и 2.1 и мы опоздали, либо случаи 1.2 и 2.2
if (1 < _aItemsQueue.Count && cItem == _aItemsQueue[0])
_aqPrepareQueue.Enqueue(_aItemsQueue[1].iEffect);
if (!bCurrent)
_aItemsQueue.Remove(cItem);
}
(new Logger()).WriteDebug3("playlist:skipping out [true][p.h:" + GetHashCode() + "][e.h:" + cEffect.GetHashCode() + "]");
}
}
(new Logger()).WriteDebug4("playlist:skipping out [true][hc:" + cEffect + "]");
return true;
}