https://aharisu.hatenadiary.org/entry/20180815/1534348306
正確には同期で表示されるダイアログが無い。
これは端末回転やメモリ不足によって画面オブジェクトの再作成が行われることが想定されているからだと思う。
非同期で表示されるダイアログならDialogFragmentで復元できるが、「処理の途中で表示していたダイアログ」があると変数の状態や処理がどこまで進んだときに表示されたダイアログなのかを全部保存しないとそれを復元できない。
Tailwind CSS
https://tailwindcss.com/
bootstrapよりも粒度の細かいCSSフレームワーク。
イメージとしては、よく使うスタイルシートのショートカット集。
進撃の巨人世界の謎
最終話のエレンの台詞「人類の8割を殺すことになる」と最終決戦をした砦の位置(アフリカの端)から考えると、進撃の巨人世界では人類はアフリカ大陸以外にはほとんど住んでいない……?なんかヒィズル国も地鳴らし圏内に存在したっぽいし。
マーレ国やその他諸国の文明水準から考えると、これはえらく不自然な気がする。
いっそアフリカ以外大陸なんて存在しない説もありかと思うが、32巻地図にはユーラシア大陸インドあたりまでの海岸線はちゃんと書かれてるんだよなあ。
進撃の巨人世界は太陽が西から昇り東に沈む、地球ではない世界なのでたまたまユーラシア大陸と海岸線は一致してたけど、巨大な大陸はアフリカ大陸以外に存在しませんって言われたら反論しようがないが……。
C#のlock構文が必要な理由
https://blog.siongames.net/entry/lockcontro
マルチスレッドだと、例えばスレッドAとスレッドBが同じ変数を+1更新をかけたとき、
1.スレッドAが変数内容を読む 2.スレッドBが変数内容を読む 3.スレッドAが読んだ値+1の内容を変数に格納する 4.スレッドBが読んだ値+1の内容を変数に格納する
……という順で処理がされることがある。
この場合『2回ほど変数を+1更新する処理が実行されたのに、変数内容は+1しかされない』という動作になる。
これを防ぐために、あるスレッドからアクセスしている間は別のスレッドからの読み書きを禁止するのがlock構文。
///
/// lock()構文を使用して排他制御する
///
public class LockProcess : ProcessBase
{
private object lockObj = new object();
public override void AddProcess(int loopCount)
{
for (int i = 0; i < loopCount; ++i)
{
lock (lockObj)
{
value++;
}
}
}
}